共 63 篇文章 |
|
&wincor1[0],&wincor[1],&wincor1[2];if(fabs(wincor1[0]-wincor2[0])> fabs(wincor1[1]-wincor2[1](( { mflage=1;delta=(float)fabs(wincor1[0]-wincor2[0]); if(delta>1.0) if(wincor1[0] min=wincor1[0];max=wincor2[0]; xy1=wincor1[1]; z1=wincor1[2]; kxy=(wincor2[1]-wincor1[1])/... 阅1072 转13 评1 公众公开 11-01-02 16:06 |
屏幕坐标如何转化为opengl中的坐标 屏幕坐标如何转化为opengl中的坐标啊?各位帮帮忙 glMatrixMode(GL_MODELVIEW); glPushMatrix(); GLint viewport[4]; GLdouble modelview[16]; GLdouble projection[16]; GLfloat winX, winY, winZ; GLdouble posX, posY, posZ; CPoint rPoint; 阅1801 转9 评0 公众公开 11-01-02 15:44 |
OpenGL 绘图的一般过程可以看作这样的,先用 OpenGL 语句在 OpenGL 的绘图环境 RenderContext (RC)中画好图, 然后再通过一个 Swap buffer 的过程把图传给操作系统的绘图环境 DeviceContext (DC)中,实实在在地画出到屏幕上. 下面以画一条 Bezier 曲线为例,详细介绍VC++ 上 OpenGL编程的方法。 阅1040 转16 评0 公众公开 11-01-01 09:51 |
①winx = x -viewport[0]; winy = screenHeight -viewport[1] - y; viewport[0] = viewport[1] = 0;②winx = x; winy = screenHeight -y;第一种比较直观,前两句是将屏幕坐标转换为视景体内的坐标,后两句将视景体的左下角点坐标改为(0,0),因为在设置裁剪视口时,使用glViewport设置视口的左下角点坐标不一定是(0,0),而在视景体内的点... 阅2303 转17 评0 公众公开 11-01-01 08:52 |
OpenGL的坐标轴OpenGL的坐标轴:x正向:从左到右,中间为0y正向:从下到上,中间为0z正向:从里到外,显示器所在面为0在NeHe的文档中,坐标轴原点在显示器上方(gluPerspective中定制了绘制的深度范围0.1-100.0),所以要想绘制图形,需将坐标轴移入屏幕,如glTranslatef(0.0f, 0.0f, -6.0f)。 阅1243 转2 评0 公众公开 10-12-30 20:37 |
// Use tq to store the largest trace tq[0] = 1 + m._mat[0][0]+m._mat[1][1]+m._mat[2][2];tq[1] = 1 + m._mat[0][0]-m._mat[1][1]-m._mat[2][2];tq[2] = 1 - m._mat[0][0]+m._mat[1][1]-m._mat[2][2];cout<<"\t"<<r._mat[0][0]<<" "<<r._mat[0][1]<<" "<<r._mat[0][... 阅9285 转115 评0 公众公开 10-12-29 15:07 |
告诉你一个最适用的方法不要使用opengl自带的移动旋转,缩放矩阵函数,而是自己写矩阵,这样灵活多了。然后再做一个缩放矩阵S.然后再做旋转矩阵,如果使用四元数的话,要方便一些,但是四元数的类和四元数转换为矩阵的操作都要自己写,如果使用欧拉角的话,这里就分别做3个矩阵,然后再相乘。这里要注意的是,opengl中的矩阵是以一维数组的形式... 阅2276 转7 评0 公众公开 10-12-29 14:52 |
//三角形的三个顶点的位置坐标float matrixT[3][3];vertex2D vOld[VERTEX_NUM] = {{50,50,1},{200,100,1},{150,300,1}};vertex2D vNew[VERTEX_NUM];matrixT[1][2] = ty;newPos->x = mT[0][0] * oldPos->x + mT[0][1] * oldPos->y + mT[0][2] * oldPos->h;newPos->y = mT[1][0] * oldPos->x + mT[1][1] * oldPos->y + mT[1... 阅1109 转14 评0 公众公开 10-12-29 13:04 |
画出来的坐标轴只有正半轴,有什么讲究?glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);glColor3f(1.0f,0.0f,0.0f);glBegin(GL_LINES);glVertex3f(-0.5f,0.0f,0.0f);glVertex3f(0.5f,0.0f,0.0f);glEnd();glVertex3f(0.0f,-0.5f,0.0f);glVertex3f(0.0f,0.5f,0.0f);glVertex3f(0.0f,0.0f,-0.5f);glVertex3f(0.0f,0.0f,0.5f); 阅316 转0 评0 公众公开 10-12-28 11:46 |
OnPaint是WM_PAINT消息的消息处理函数,在OnPaint中调用OnDraw,一般来说,用户自己的绘图代码应放在OnDraw中。当没有添加WM_PAINT消息处理时,窗口重绘时,由OnDraw来进行消息响应...当添加WM_PAINT消息处理时,窗口重绘时,WM_PAINT消息被投递,由OnPaint来进行消息响应.这时就不能隐式调用OnDraw了.必须显式调用( CDC *pDC=GetDC(); OnDraw(pDC);... 阅831 转20 评0 公众公开 10-12-25 14:31 |