开发工具:
文件大小: 33kb
下载次数: 0
上传时间: 2006-03-16
详细说明: 《计算机三维图形处理原理》时, 花4小时制作的3D演示程序。 主要程序块: //天津 王红广 版权所有 //允许自由转载 但要注明出处 static float theta=15.0f;;;; float vPoint0[4],vPoint1[4],vPoint2[4],vPoint3[4],vPoint4[4];;;; float vP0[4],vP1[4],vP2[4],vP3[4],vP4[4];;;; //initObj SetVector(vP0, 0.0f,0.7f,0.0f,1.0f);;;; SetVector(vP1, 1.0f,-1.0f,0.0f,1.0f);;;; SetVector(vP2, 0.0f,-1.0f,1.0f,1.0f);;;; SetVector(vP3, -1.0f,-1.0f,0.0f,1.0f);;;; SetVector(vP4, 0.0f,-1.0f,-1.0f,1.0f);;;; RotationY(vP0,vPoint0,theta);;;; RotationY(vP1,vPoint1,theta);;;; Rotation Y(vP2,vPoint2,theta);;;; RotationY(vP3,vPoint3,theta);;;; RotationY(vP4,vPoint4,theta);;;; //Mobj->;;;MWorld(,MView) vPoint0[2]+=m_Distance;;;; //3.0f;;;; vPoint1[2]+=m_Distance;;;; //3.0f;;;; vPoint2[2]+=m_Distance;;;; //3.0f;;;; vPoint3[2]+=m_Distance;;;; //3.0f;;;; vPoint4[2]+=m_Distance;;;; //3.0f;;;; //render _Render3DLine(&MemDC,vPoint1,vPoint2);;;; _Render3DLine(&MemDC,vPoint2,vPoint3);;;; _Render3DLine(&MemDC,vPoint3,vPoint4);;;; _Render3DLine(&MemDC,vPoint4,vPoint1);;;; _Render3DLine(&MemDC,vPoint0,vPoint1);;;; _Render3DLine(&MemDC,vPoint0,vPoint2);;;; _Render3DLine(&MemDC,vPoint0,vPoint3);;;; _Render3DLine(&MemDC,vPoint0,vPoint4);;;; theta+=1.0f;;;; 用到的两个关键函数: //渲染一条3维直线 void _Render3DLine(CDC* pDC,float vPoint1[4],float vPoint2[4]) { float vtmp1[4],vtmp2[4];;;; Perspective(vPoint1,vtmp1);;;; Perspective(vPoint2,vtmp2);;;; pDC->;;;MoveTo(vtmp1[0],vtmp1[1]);;;; pDC->;;;LineTo(vtmp2[0],vtmp2[1]);;;; } //简易透视变换,增加PtoScrean变换 Perspective(float oldvector[4],float newvector[4]) { newvector[0]=oldvector[0]/oldvector[2]/oldvector[3];;;; newvector[1]=oldvector[1]/oldvector[2]/oldvector[3];;;; newvector[2]=oldvector[2]/oldvector[3];;;; newvector[3]=1.0f;;;; newvector[0]=VectorScreenWindow[0] + (newvector[0]+0.0f) * VectorScreenWindow[2];;;; newvector[1]=VectorScreenWindow[1] + (-newvector[1]+0.0f) * VectorScreenWindow[3];;;; } ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.