螺旋管计算法向量函数
函数Drae/Hellx()是用来绘制螺旋管的。在该函数的开始处,程序调用g1Materal()命令为当前光照模型设置材质,其作用与第5章程序ExAM506中对该命令调用的作用一样,是用来设置实体的颜色与材质。然后程序按螺旋管的形状利用绘制四边形的方式绘出了整个螺旋管。该函数看起来相当复杂,实际[:其大多数代码用于计算四边形的4个顶点,实际的绘图操作是由以下语询完成的:
这里首先计算山四边形而片的法向矢量并对其进行归一化,然后将计算出的单位向量作为当前面片的法向量,最后给出四边形4个顶点的坐标。
计算法向量是由函数calaulate()来完成的,它将参数vertexes所带进来的3个向量按数学原理进行了计算,计算的结果是一个间星加如MI,即no咖l向量就是计算出的法向量。需要注意的是,在法向量被计算出来后p该函数还调用了udtIize()函数对法向量进行了归一北。函数unNhe()是一个向量山一化函数,其原理是首先根据向量的3个分量计算出向量的长度,然后用该长度除向量的3个分量。