三维坐标点投影到二维屏幕上的点时:
x1= y- x/
y1= -z+ x/
要计算在屏幕上的投影值,即相当于下图中计算点在YZ上的坐标值,其中,X与Y,Z轴夹角均为135度,PP1=z.故可计算二维坐标,要记住屏幕窗口的原点在左上角,X往右递增,Y往下递增.
代码如下(计算机图形学实例43(Visual C++版) 孔令德):
void CTestView::Transform3DTo2D(const double P3D[7][5],double P2D[7][3],const int n)
{//三维坐标变换为二维坐标
for(int i=1;i<=n;i++)
{
P2D[i][1]=P3D[i][2]-P3D[i][1]/sqrt(2);
P2D[i][2]=-P3D[i][3]+P3D[i][1]/sqrt(2);
}
}