您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

3D矩阵透视变换

3D矩阵透视变换

您可以使用4 x 4转换矩阵,该矩阵是不可逆的,并且可以在所需的两个坐标系之间进行双向转换。

如果你知道的三个旋转ab并且g,关于xyz分别采用右手法则。的x0y0z0是两个坐标系的原点的翻译。

转换矩阵定义为:

T = np.array([[ cos(b)*cos(g), (sin(a)*sin(b)*cos(g) + cos(a)*sin(g)), (sin(a)*sin(g) - cos(a)*sin(b)*cos(g)), x0],
              [-cos(b)*sin(g), (cos(a)*cos(g) - sin(a)*sin(b)*sin(g)), (sin(a)*cos(g) + cos(a)*sin(b)*sin(g)), y0],
              [        sin(b), -sin(a)*cos(b), cos(a)*cos(b), z0]
              [ 0, 0, 0, 1])

为了有效地使用它,您应该将点放置在二维数组中,例如:

orig = np.array([[x0, x1, ..., xn],
                 [y0, y1, ..., yn],
                 [z0, z1, ..., zn],
                 [ 1,  1, ...,  1]])

然后:

new = T.dot(orig)

将为您提供转换点。

其他 2022/1/1 18:26:18 有457人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶