- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
几何体的消隐算法实现
课程名称:《计算机图形学》
教学部:
年 级:
班 级:
学 号:
姓 名:
简单几何体的消隐算法实现
他(二) 平 面 公 式 法
根据解析几何原理,通过标准的平面方程可以判断给定点是在平面的正面还是背面。平面公式法利用此原理来判断观察点位于物体表面的哪一面,如位于背面一侧 ,则表面不可见,应被消隐;反之则可见。
对物体得任意表面,可将其划分为若干个平面,在根据平面上任意三点的坐标可以求得其平面方程。标准得平面方程为
Ax+By+Cz+D = 0;
其中A、B、C、D为决定平面得常数。如果(x1, y1, z1)、(x2, y2, z2)、(x3, y3, z3)为平面上已知得三点坐标,则可求得A、B、C、D 如下:
{ A=y1(x2-x3)+y2(z3-z1)+y3(z1-z2);
B=z1(x2-x3)+z2(x3-x1)+z3(x1-x2);
C=x1(y2-y3)+x2(y3-y1)+x3(y1-y2);
D=-x1(y2z3-y3z2)-x2(y3z1-y1z3)-x3(y1z2-y2z1);
设观察点坐标为(x, y, z),如果 Ax+By+Cz+D = 0,则观察点(x, y, z) 位于平面上; Ax+By+Cz+D 0,则观察点(x, y, z)位于平面背面一侧,平面 不可见,应被隐藏; Ax+By+Cz+D 0,则观察点(x, y, z)位于平面正面一侧,平面是可见面,应被画出。
通过对物体进行适当旋转和平移后,可将物体变换到以观察点为原点得观 察坐标系中,如果在观察坐标系中求得了平面得方程Ax+By+Cz+D = 0,将观察点坐标(0,0,0)代入上面得判断准则,则可得出如下得简单判据: D 0,则平面不可见,应被隐藏; D 0, 则平面是可见面,应被画出。
平面公式法算法简便, 是在实际中使用最频繁得消隐算法。但它只能用于凸面体得消隐,而不适用于凹面体消隐。
(三) 背 面 消 除 法
背面消除法是直接运用背面消隐原理的消隐算法。在数学上,物体表面的法向量即是表面的朝向 ,因此,法向量方向背向观察点的物体表面都应被消隐。
表面的法向量是否背向观察点可以通过表面法向量与视向量的点积来决定。如图1 所示,设经坐标变换后,坐标系的原点O即是观察点,空间中任意平面ABC 的法向量为,法向量为与平面的交点为P,则从向量OP 即是平面ABC 的 视向量。
如果 0,则物体表面是可见的朝向观察点的面;如果,则物体表面是不可见的背向观察点的面,应被消隐。
设θ为向量和之间的夹角,视向量的长度为线段OP 的长度|OP|,则根据向量点积的定义可知=|OP|||cos θ。如果 0,则cos θ 0( 即 θ 0); 反之,如果,则cos θ 0( 即 θ)。
因此,背面消除法的判据简化为: cos θ 0,则物体表面不可见,应被消隐;cos θ 0则物体表面可见,应被画出。
根据面法向量的定义可知,在平面上按逆时针方向选取P1(x1, y1, z1)、P2(x2, y2, z2)、P3(x3, y3, z3)三点,则经过投影变化后,视向量与Z轴是平行的,因此向量和之间的夹角θ即为Z 轴与向量的夹角,所以由 于||0, 所以cos θ的正负取决于C,因此背面消除法的判据转化为:C 0,则物体表面不可见,应被消隐;C 0,则物体表面可见,应被画出。
(四) 径 向 预 排 序 法
径向预排序法根据物体在三维坐标系XY 平面中的角位置来判断哪些物体 挡住了其它物体,物体的哪些表面挡住了其它表面。对具有相同角位置的物体或表面,与观察点较近的将挡住较远的。
径向预排序法示例
径向预排序法消隐的要点是先对物体及物体的表面进行由远及近的排序 对具有相同角位置的物体或表面,先画较远的,后画较近的,这样如果较近的物体或表面挡住了较远的物体或表面,则被遮挡的部分被覆盖而实现消隐。但对具 有不同角位置的物体或表面,先画哪一个可根据需要来决定。如果存在凹面物体的消隐,一般应先画物体中心部分,再画物体的两侧,以正确地表现互相重叠的凹面模型。
径向预排序法可以对任意形状的物体进行消隐处理。但需要预先知道观察角度,并根据角位置对物体的画图顺序预先排序。而且构造模型的编码受到这种排序的限制,模型不能进行旋转变换。
(五) 径 向 排 序 法
径向排序法是对径向预排序法的改进算法,使得构造模型的编码能根据观察角度的变化,来自动调整物体或表面的远近顺序即画图顺序,以实现对模型的旋转变换,以便能从不同的角度来观察物
文档评论(0)