|
|
|
|
|
|
|
|
|
|
|
|
第一节
线面比较法消除隐藏线 |
|
|
|
|
|
|
|
线段,,线段不会被遮挡;
,线段有可能被遮挡。 求交点 Ax+By+Cz+D=0
直线的参数方程可写成,代入平面方程得:
解得
若t≥0,则
,若t<0,则
。 .
需要检查出某一段子线段是否可见。为此可以取子线段上任意一点,若这点在多边形表面各边线的投影所形成的封闭多边形内,这子线段就不可见,否则就可见。
空间一条线段可能被一个多边形表面遮挡的消除隐藏线的算法的步骤如下:
xv方向和yv方向的范围检查;若不能判断,则接着做zv方向的范围检查即粗略的深度比较;若还不能判断就再进行精确的深度比较,比较时应计算线段两端点在可能遮挡它的平面上的投影点,比较相应的坐标。这时可能出现线段与平面相交需要用交点,这些交点把线段的投影分成两部分考虑的情况。判断得知线段确实被平面遮挡了哪些部分做精确计算,计算是求出线段的投影与遮挡平面上多边形表面边框投影的所有交点,这些交点把线段的投影分成可见和不可见的一些子线段。对子线段的可见性,先取上面一点做点的包含性检验来进行判断。
|
|
|
|
|
|