三维图形、曲线及曲面的绘制-Read.doc

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
三维图形、曲线及曲面的绘制-Read.doc

三维图形、曲线及曲面的绘制 制作者:贾运蕾 班 级:计算机学院九九级(一)班 ) A.程序要求:将一个三维图形--房子投影到二维平面上,并为追求其真实感,应将它不能 被观察者看到的面隐藏,为追其动态效果,可以使房子以一定方式旋转起来。 B.设计思想: 1.三维坐标系中确定房子各个点的坐标,另外不要忘记给各个点按照一定次序编号,以便 用以确定哪两个点之间有连线,以便于当将三维图形—房子投影到二维平面时更便于重 画;房子共有十个顶点,十七条边线,七个面,给每个面编号并记下位于每个面中的顶 点编号及边线编号,以便于在消隐面时确定哪些面应该去除。 2.建立数据结构: 1)建立点的数据结构: struct pixel { int x; int y; int z; }; 2)本程序需要三个piexel类型的数组: 顶点:p[10]; 面:二维数组face[7][];参考点:refer 3.三维坐标系中确定房子各顶点及所选定的某一参考点的坐标值。 4.将三维图形--房子投影到二维平面上。 1)采用透视投影,方法如下: 设顶点的三维坐标分别为:x,y,z; 投影到二维平面后,其二维坐标为xp,yp; 投影平面平行与xy平面,距投影中心(即三维坐标系原点)的距离为d。 则:xp=d*x/z, yp=d*y/z 另有结论:①幕布远推,物体的投影变大;幕布近推,物体的投影变小。 ②d不变,随z变大,物体的投影变小; d不变,随z变小,物体的投影变大。 2)由于按照公式1)做物体的投影很不方便,所以可以改进,较好的方法是物体不 动,而观察者可以根据自己的需要确定观察位置,再投影取像,即:以观察点为 原点,建立观察坐标系,把用户坐标系下的物体变为观察坐标系下的物体,再投 影成像,称为取景变换。 公式如下: 已知观察点坐标为(a,b,c); v=sqrt(a*a+b*b), u=sqrt(a*a+b*b+c*c) -b/v -a*c/(u*v) -a/u 0 a/v -b*c/(u*v) -b/u 0 变换矩阵= 0 v/u -c/u 0 0 0 u 1 通过变换矩阵的运算,已将原坐标系中的点 观察坐标系中的点 有了观察坐标系下的坐标,还不能生成图象,还需要经过一次投影。 利用公式:xp=d*xe/ze, yp=d*ye/ze 三维图形即可以显示到二维平面。 注意:因为所选择的视区只能放下三维图形的一部分,所以应调整比例。 5. 房子面的隐藏: 为追求真实感,在观察者观察房子时应将被遮挡的面隐藏起来。 例如: d1 c1 a1 b1 c2 a2 b2 长方体a1c2在被从垂直桌面向内方向观察时,就会有三个面—a2b2c2d2,c1d1d2c2 和a1a2d2d1被遮挡。 同理,房子被观察者观察时也存在同一问题,解决方法如下: n p4 p3 p1 p2 面s:p1p2p3p4 法线方向 r=p2-p1 q=p3-p2 n=r*q 可见: cos?正,?:0—90度,s可见 cos?负,?:90—180度,s不可见 cos?的求解: p.n=|p|.|n|.cos? ? p.n=px.nx+py.ny+pz.nz p n 注意:在判断房子任意一个面的方向向量时,该方向向量都指向房子内部中心。 6.房子的旋转: 由于房子的投影是基于在观察坐标系中完成的,所以房子在旋转时不必改变各顶 点的实际坐标,只要保证参考点的坐标发生变化即可。 房子的旋转有多种方式,如: 参考点可以在一个圆上移动。 参考点可以在一个球上移动。 参考点的选定依鼠标的点击来确定。 C. 源程序。 执行程序。 说明:程序执行后,屏幕为黑屏,选择 键来选择房子的旋转方向,每按 一次键,房子旋转180度,最后按回车键可返回原界面。 曲线的绘制 一.三次参数样条曲线 A. 程序要求:在屏幕上由给定的离散的

文档评论(0)

wendang_12 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档