实验3-3D图形旋转+消隐.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验3-3D图形旋转+消隐

实验要求 在2D屏幕上绘制3D图形 说明:为数据简单起见,用多边形表示面 3D如何表示(画在)成2D? 3D如何表示(画在)成2D? 向XOZ坐标平面作正投影 投影结果1 投影结果2 前提:坐标变换 坐标变换 顶点变换 绕z轴转15度 平面法矢量 所以立方体6个面的法矢量 消隐原理 原理: 注意1:保留原数据 注意2:原点位置 求得新坐标系下的 后,矩形以原点为中心对称的,而屏幕原点在左上角,因此最后画图时要平移到中心位置, 平移值较合适在: 注意3:平面法矢量 用多边形表示一个面时,要统一按一定方向逆时钟/顺时钟方向 注意4:视角方向 用多边形表示一个面时,要统一按一定方向逆时钟/顺时钟方向 注意5:int运算结果 Int * int =int 而计算某凸面矢量时,用到float temp 写成: temp=(float)p[8].x*pv[i].x+(float)p[8].y*pv[i].y while(getch() != ) { cleardevice(); rotate(vv,v,9); rotate(vector,pv,6); render(v); //在新位置上更新 } setlinestyle(DASHED_LINE,0, NORM_WIDTH); for(i=0;i6;i++) { if(f[i][4]=0) for(j=0;j4;j++) { a1=f[i][j]; a2=f[i][(j+1)%4]; line(p[a1].x,p[a1].z,p[a2].x,p[a2].z); } } Cos(x) 消隐原理 凸多面体是由若干个平面围成的物体。假设这些平面方程为 aix+biy+ciz+di=0, i=1, 2, …, n (7.1) 视点与第i个面上一点连线的方向为(li, mi, ni)。那么自隐藏面的判断方法是: (ai, bi, ci)?(li, mi, ni)0 任意两个自隐藏面的交线,为自隐藏线。 (自隐藏线应该用虚线输出)。 M1 n1 M2 M3 得相应的平面方程: (75,75,0) 先用细虚线画出不可见的面 再用粗实线画出可见的面 a · b = |a| |b| cos φ demo 为何定义了v[8], 还要定义p[8]? 养成备份源数据的习惯,即运算结果总是用新变量存储! 这是因为:一个墙有2个面,方向不同,矢量方向相反 {-0.2*R, R, 0} 绕x轴方向旋转?角 {-0.2*R, R, 0} {0, R, 0} {-0.1*R, R, 0} main() { int i; int gdriver=DETECT, gmode; Point v[9],pv[6]; initgraph(gdriver, gmode, ); rotate(vv,v,9); render(v); closegraph(); } for(i=0;i8;i++) { vv[i].x=v[i].x; vv[i].y=v[i].y; vv[i].z=v[i].z; } for(i=0;i6;i++) { vector[i].x=pv[i].x; vector[i].y=pv[i].y; vector[i].z=pv[i].z; }  3D图形有3分量,模型如下:  1.建模 x x y (75,75,0) (75,-75,0)  顶点表:V     面表:F  0 75 75 0 1 0 1 5 4 1 75 -75 0 2 1 2 6 5 2 -75 -75 0 3 2 3 7 6 3 -75 75 0 4 3 0 4 7 4 75 75 100 5 4 5 6 7 5 75 -75 200 6 3 2 1 0 6 -75 -75 200 7 -75 75 100   设计定义模型的数据结构    int v[8][3]={

文档评论(0)

153****9595 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档