求一图形算法

laiwusheng 2006-02-26 04:26:47
用编程实现一个彩色的可用鼠标旋转的立方体,并且每一面上能附上图表及文字。
...全文
200 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
marshallcp 2006-04-13
  • 打赏
  • 举报
回复
借花一用拉,,有鼠标控制的旋转的立方体
#define GLUT_DISABLE_ATEXIT_HACK
#include <GL/glut.h>
#include <stdlib.h>

static GLfloat spin = 0.0;

void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
gluLookAt(2.0,0.0,5.0,0.0,0.0,0.0,0.0,1.0,0.0);
glPushMatrix();
glRotatef(spin, 0.0, 0.0, 1.0);
glColor3f(1.0, 0.0, 0.0);
glutWireCube(10);
glPopMatrix();

glutSwapBuffers();
}

void spinDisplay(void)
{
spin = spin + 2.0;
if (spin > 360.0)
spin = spin - 360.0;
glutPostRedisplay();
}

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, -50.0, 50.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 (250, 250);
glutInitWindowPosition (100, 100);
glutCreateWindow (argv[0]);
init ();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMouseFunc(mouse);
glutMainLoop();
return 0;
}
marshallcp 2006-04-06
  • 打赏
  • 举报
回复
用opengl可以参考红宝书,上面有现成的东西
寻开心 2006-02-28
  • 打赏
  • 举报
回复
dxsdk或者opengl的nehe教程当中都有现成的例子
你要先选择一个三维平台,然后再说
laiwusheng 2006-02-28
  • 打赏
  • 举报
回复
谢谢了!还有哪位大师能把 纹理贴图,三维的显示及转动的算法简单描述一下?
寻开心 2006-02-27
  • 打赏
  • 举报
回复
立方体是一个几何体,各个面上的内容(图表或者文字)是纹理贴图
三维的显示借助d3d或者opengl都可以
鼠标的操作是界面编程的问题

1,451

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计/Flash/Silverlight 开发 图象工具使用
社区管理员
  • 图象工具使用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧