请问如何得到一个三维空间物体映射到二维空间的轮廓?

来源:百度知道 编辑:UC知道 时间:2024/06/30 03:19:04
C++当中,应该用到那些函数呢?

没有相应的函数的,除非用第三方的函数库(opengel之类的)
提提思路
首先三维空间物体是三维坐标的,x、y、z三个坐标,转换为二维的话,其实是做了一个坐标映射,而坐标映射其本质就是一个矩阵的乘法,这些矩阵的原理这里就不提了,很复杂,网上有很多,可以找找,矩阵的运算网上也有很多现成的函数。

当每个点都转换为二维坐标后就可以求出二维的投影图了

对于一般的图形这种映射是很困难的,要用到OpenGL这样的专业软件去做,但是如果只是多边形,可以对端点做映射,再直接将映射后的端点用线段连接起来。之前看过一个公式:设三维空间中的点坐标为(X,Y,Z),则变换后的二维坐标为(X*d/Z,Y*d/Z)其中d是参数,可以自己尝试选一个看着舒服的。不过我没有亲测过,试试吧。另外,这个变换由于不是线性变换,不能像楼上说的那样用矩阵算。