绘制一次函数的图像的平移用计算机图形学opengl或者matlab实现
想编程做一个绘制初等函数的图像,并且实现它的平移的东西。用计算机图形学的知识做还是matlab实现??求大神,现在毫无头绪。具体怎么实现?实现起来难吗?加q3861502...
想编程做一个绘制初等函数的图像,并且实现它的平移的东西。用计算机图形学的知识做还是matlab实现??求大神,现在毫无头绪。具体怎么实现?实现起来难吗?加q386150289备注百度问题
展开
推荐于2016-11-23
展开全部
代码如下:
#include<windows.h>
#include <GL/glut.h>
#include<GL/glu.h>
#include<GL/gl.h>
#include <stdlib.h>
static GLfloat spin = -35.0;
static GLint status = 1;
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glPushMatrix();
//glRotatef(spin, 0.0, 0.0, 1.0);
glTranslatef(spin, 0.0, 0.0);//注意这里的spin为静态的全局变量
glColor3f(0.5, 0.5, 0.5);
glRectf(-10.0, -10.0, 10.0, 10.0);
glPopMatrix();
glutSwapBuffers();//PS:区别于glFlush();
}
void spinDisplay(void)
{
if (spin >= 30)
status = -1;
else if(spin<=-35)
status = 1;
spin += status*0.05;//这一行代码用来控制移动的速度
glutPostRedisplay();//使spin不停的变换,有些类似一个循环
}
void init(void)
{
glClearColor (0.0, 0.0, 0.0, 0.0);
glShadeModel (GL_FLAT);
//本行代码表明了颜色为单颜色方式,就是不适用混合色,后一种颜色覆盖前一种设置。
}
void reshape(int w, int h)
{
glViewport (0, 0, (GLsizei) w, (GLsizei) h);//视口的大小的设置
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-50.0, 50.0, -50.0, 50.0, -1.0, 1.0);//二维裁剪窗口函数
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void mouse(int button, int state, int x, int y)//鼠标的左右键按下时的响应事件
{
switch (button) {
case GLUT_LEFT_BUTTON:
if (state == GLUT_DOWN)
glutIdleFunc(spinDisplay);
break;
case GLUT_MIDDLE_BUTTON:
case GLUT_RIGHT_BUTTON:
if (state == GLUT_DOWN)
glutIdleFunc(NULL);
break;
default:
break;
}
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB);
glutInitWindowSize (400, 400);
glutInitWindowPosition (100, 100);
glutCreateWindow ("矩形平移效果");
init ();
glutDisplayFunc(display);//调用初始化的图形函数
glutReshapeFunc(reshape);//调用开始变换的图形函数
glutMouseFunc(mouse);//调用鼠标的响应函数
glutMainLoop();
return 0;
}
展开全部
最好用move函数!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
实现它的平移的东西
这句话是什么意思??
这句话是什么意思??
追问
比如y=f(x)和y=f(x-1)。就是平移,怎么编程实现缓慢平移动画。
追答
x=1:100;
b = 'y = sin(x);';
eval(b);
for i=1:100
plot(x+5*i,y);
pause(0.5);
end
比如说,这种??
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询