我通过计算顶部和底部圆圈上的点然后连接这些点来使用三角形制作一个圆柱体。我从 (1,1,0) 开始。然后,我计算底部的一个点(通过仅更改 y 轴 -> (1,0,0)),然后计算顶部的下一个点(x = xcosA,z = zsinA,其中 A 是任意角度)和很快。所以,我在逆时针方向跟踪顶部和底部的圆圈。现在,我想为这些三角形绘制法线。
我以三人一组计分。假设它们存储在向量 a、b 和 c 中,其中 a 是第一个点(在顶部),b 是第二个点(在底部),c 是第三个点(在顶部)。根据右手定则,要计算法线,我必须这样做:法线 = (cb) x (ab)。这应该给我一个正常的面朝外。但是,法线被向内绘制。要绘制法线,我只需将 glTranslatef 到三角形的中心,然后画一条从 (0,0,0) 到法线的线。我的计算不正确吗?