2020/10/16
19
• 多边形裁剪 • 双边裁剪——遇到交点向右拐
2020/10/16
20
• 1)进行初步深度排序,可按各多边形z最小值(或最 大值、平均值)排序;
• 2)选择当前深度最小(离视点最近)的多边形为裁剪 多边形;
• 3)用裁剪多边形对那些深度值更大的多边形进行裁剪
• 4)比较裁剪多边形与各内部多边形的深度,检查裁剪 多边形是否是离视点最近的多边形。若裁剪多边形深 度大于某个内部多边形的深度,则恢复被裁剪的各多 边形,选择新的裁剪多边形,回到3),否则做5);
➢该算法多用于线消隐,也用于面消隐。
➢算法的简单描述如下: ➢对于三维场景中的每一个物体:
➢判定场景中的所有可见表面;
➢用可见表面的颜色填充相应的像素以构成图形;
2020/10/16
9
假定:垂直投影
•隐藏线和隐藏面消除所讨论的对象是一个三维 图形,消隐后要在二维空间中表示出来,因此消 隐后显示的图形将和三维空间至二维空间的投影 方式有关。 •下面讨论消隐算法时,都假定投影平面是oxy平 面,投影方向为负z轴方向的垂直投影。
• 2)对多边形P,计算它在点(i,j)处的深度值 zi,j,
• 3)若zi,j< ZB(i,j),则ZB(i,j)=zi,j,CB(i,j)=多 边形P的颜色;
• 4)对每个多边形重复(2)、(3)两步,最 终在CB中存放的就是消隐后的图形。
2020/10/16
23
• 如何求深度
设某个多边形所在的平面方程为
• 5)择选下一个深度最小的多边形作为裁剪多边形,从 3)开始做,直到所有的多边形都处理过为止。在得到 的多边形中,所有的内部多边形是不可见的,其余多 边形均为可见多边形。