欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

3d场景中的平面转2维平面

程序员文章站 2022-04-02 09:38:43
...

比如在3d模型的投影中,投影面虽然是一个平面,但是是3维坐标表示的,我们会需要将3维的平面转换成2维的平面:

首先将3d平面的坐标轴与2d平面的坐标轴对应起来

具体解释可以看这篇博客:

http://blog.csdn.net/jc_laoshu/article/details/69657579

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]]