游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3114|回复: 5

不好意思,有一个小问题想请教,用折线绘制函数曲线图

[复制链接]

11

主题

26

帖子

26

积分

注册会员

Rank: 2

积分
26
发表于 2006-10-12 00:18:00 | 显示全部楼层 |阅读模式
f(x)=300-100cos(2πx/100)+30cos(4πx/100)+6cos(6πx/100)
就是用折线绘制这个函数的曲线,代码如下,但是显示为白色背景,什么都没有……哪里错了?貌似要进行坐标变换,要怎么做呢?
---------------------------------------------------------------------------------------------------------------------------
void myDisplay(void)
{
        glClear(GL_COLOR_BUFFER_BIT);               
        glBegin(GL_LINE_STRIP);
                for (GLdouble x=0; x<4.0; x+=0.005)       
                {
                        GLdouble func = 300.0-100.0*cos(2.0*3.14159*x/100.0)+30.0*cos(4.0*3.14159*x/100.0)+6.0*cos(6.0*3.14159*x/100.0);
                        glVertex2d(x, func);
                }
        glEnd;
        glFlush;       
}
---------------------------------------------------------------------------------------------------------------------------

27

主题

179

帖子

259

积分

中级会员

Rank: 3Rank: 3

积分
259
发表于 2006-10-12 04:02:00 | 显示全部楼层

Re:不好意思,有一个小问题想请教,用折线绘制函数曲线图

没有glcolor设定线的颜色

11

主题

26

帖子

26

积分

注册会员

Rank: 2

积分
26
 楼主| 发表于 2006-10-12 15:57:00 | 显示全部楼层

Re:不好意思,有一个小问题想请教,用折线绘制函数曲线图

颜色设定在myInit中。
但是只在窗口边缘显示了一条线,请问坐标变换怎么做?

11

主题

26

帖子

26

积分

注册会员

Rank: 2

积分
26
 楼主| 发表于 2006-10-12 16:35:00 | 显示全部楼层

Re:不好意思,有一个小问题想请教,用折线绘制函数曲线图

先谢谢楼上的几位同学,回去后试一试,这里没有装VC,只有Matlab
顺便问一句,游戏制作会用到Matlab这种东西么?

0

主题

202

帖子

202

积分

中级会员

Rank: 3Rank: 3

积分
202
发表于 2006-10-13 01:04:00 | 显示全部楼层

Re:不好意思,有一个小问题想请教,用折线绘制函数曲线图

就这样子画三

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2006-11-13 00:42:00 | 显示全部楼层

Re: 我对程序改进了下,可以看到曲线了


可以添加投影变换        GLfloat nRange = 40.0f;//40.0是我尝试的数据值,可以改变
if (w <= h)
                glOrtho (-nRange, nRange, -nRange*h/w, nRange*h/w, -nRange, nRange);
    else
                glOrtho (-nRange*w/h, nRange*w/h, -nRange, nRange, -nRange, nRange);
我觉得看不到曲线的原因或者只看到一点点在上方的原因是,纵坐标的值太大,即Func的值太大,导致曲线不在视口里。而横坐标变化太小,几乎可以被忽略。
另外        for (GLdouble x=0; x<4; x+=0.005)
        {
                GLdouble func = 300.0-100.0*cos(2.0*3.14159*x/100.0)+30.0*cos(4.0*3.14159*x/100.0)+6.0*cos(6.0*3.14159*x/100.0);
                glVertex2f(x, func-200);
        }
        glEnd();abc
我把纵坐标向下移了,才看到图的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 20:47

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表