首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

作图三维物体时,需要3d点转成2d点进行绘制//不太明白。

2013-08-25 
绘制三维物体时,需要3d点转成2d点进行绘制//不太明白。。。//Transform3DTo2D(P3D,P2D,8) //参数double P2D[

绘制三维物体时,需要3d点转成2d点进行绘制//不太明白。。。



//Transform3DTo2D(P3D,P2D,8); 
//参数double P2D[8][2]; //第一维 形状物体8个点 第二维 x、y坐标值 
//参数double P3D[8][4]; //第一维 形状物体8个点 第二维 x、 y、 z 坐标值、原点到x y z 点的矢量长度

void CSixView::Transform3DTo2D(const double P3D[][4], double P2D[][2], const int n)//三维坐标变换为二维坐标
{
for(int i=0;i<n;i++)
{
P2D[i][0]=P3D[i][1]-P3D[i][0]/sqrt((double)2);
             //将i点 的三维的y轴值 - x轴值  / 2的开平方 是啥意思???
 P2D[i][1]=-P3D[i][2]+P3D[i][0]/sqrt((double)2);
             //将i点 的三维的z轴值 - x轴值  / 2的开平方 是啥意思???
}
}


[解决办法]
引用:
缩放  旋转 平移 都是非0的时候吧。。。。。。。 //为啥说我是学会计的???
Quote: 引用:

缩放  旋转 平移 都是1的时候 等于0 就是区分区分两个(100,200,300)? 是空间一点还是一个向量的作用吗?

不能理解你的问题

这个齐次坐标的最后一个数字0/非0 确实可用于区分向量和点坐标


点可以被平移,也可以被旋转,也可同时旋转+平移    

向量可被旋转(向量最后一位是0,在和4X4矩阵相乘时矩阵第四列无效)

矩阵4X4就是一个旋转+平移的复合矩阵,如果被乘对象是点,那就是对点做操作,如果被乘对象是向量,则只有旋转效果

而缩放则视4X4右下角数字是否为1,1:无缩放,非1:缩放(仅对点有效)

热点排行