3d场景中的平面转2维平面
程序员文章站
2022-04-02 09:38:43
...
比如在3d模型的投影中,投影面虽然是一个平面,但是是3维坐标表示的,我们会需要将3维的平面转换成2维的平面:
首先将3d平面的坐标轴与2d平面的坐标轴对应起来
具体解释可以看这篇博客:
def get_transform(x, y, z, a, b, c, m, n, p, core): #转置矩阵
x0 = -(core[0] * x + core[1] * y + core[2] * z)
y0 = -(core[0] * a + core[1] * b + core[2] * c)
z0 = -(core[0] * m + core[1] * n + core[2] * p)
T = np.mat([[x, y, z, x0],
[a, b, c, y0],
[m, n, p, z0],
[0, 0, 0, 1]])
return T
然后将3维平面上点的坐标 对应到2维平面上:
def fun(core, prosurface, vx, vy, vz, T):
old = np.mat([vx, vy, vz, 1])
new = old * T
res = new.getA()
return [res[0][0], res[0][2]]