如何使用transformations.py旋转点

要求

您如何使用流行的transformations.py库来绕轴旋转点?

我试图将点围绕z轴旋转90度,但没有得到预期的结果,尽管该文件的文档包含创建转换矩阵的几个示例,但实际上并没有显示如何使用这些矩阵应用转换。我的代码是:

from math import pi
import transformations as tf
import numpy as np

alpha, beta, gamma = 0, 0, pi/2.
origin, xaxis, yaxis, zaxis = (0, 0, 0), (1, 0, 0), (0, 1, 0), (0, 0, 1)
Rx = tf.rotation_matrix(alpha, xaxis)
Ry = tf.rotation_matrix(beta, yaxis)
Rz = tf.rotation_matrix(gamma, zaxis)
R = tf.concatenate_matrices(Rx, Ry, Rz)

point0 = np.array([[0, 1, 0, 0]])

point1 = R * point0
#point1 = R * point0.T # same result
#point1 = np.multiply(R, point0) # same result
#point1 = np.multiply(R, point0.T) # same result
point1_expected = np.array([[1, 0, 0, 0]])

assert point1.tolist() == point1_expected.tolist() # this fails

计算得出的point1为:

[[  0.00000000e+00  -1.00000000e+00   0.00000000e+00   0.00000000e+00]
 [  0.00000000e+00   6.12323400e-17   0.00000000e+00   0.00000000e+00]
 [  0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00]
 [  0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00]]

这对我来说毫无意义。将4x4矩阵乘以4x1矩阵应得到4x1,而不是另一个4x4。我究竟做错了什么?

user2357112支持Monica

transformations.py使用np.array对象,而不是对象,np.matrix即使在whatever_matrix函数中也是如此(这是一件好事,因为np.matrix这太可怕了。)您需要使用dot矩阵乘法:

point1 = R.dot(point0)

另外,point0由于某种原因,您制作了行向量。它应该是列向量或普通的一维向量:

point0 = np.array([0, 1, 0, 0])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用CGAffineTransformMakeRotation旋转点

来自分类Dev

如何在pygame中围绕旋转点旋转Element?

来自分类Dev

使用旋转矩阵旋转空间中的点

来自分类Dev

旋转图像后如何重新映射点?

来自分类Dev

如何围绕特定原点旋转点?

来自分类Dev

如何绕任意轴旋转点?

来自分类Dev

如何计算旋转椭圆上的点

来自分类Dev

使用变换矩阵围绕任意点旋转

来自分类Dev

使用变换矩阵围绕任意点旋转

来自分类Dev

使用 CSS 动画围绕地球旋转点

来自分类Dev

如何使用glm :: rotate围绕原点以外的点旋转对象?

来自分类Dev

如何使用正投影D3从CSV旋转点

来自分类Dev

iOS:如何围绕中心点旋转UIImageView?

来自分类Dev

如何在Android中找到Shape的旋转点

来自分类Dev

如何可靠地围绕点旋转图像?

来自分类Dev

如何在VTK对象上旋转和放置点

来自分类Dev

如何将精灵旋转到一个点?

来自分类Dev

如何围绕一个点旋转图片框?

来自分类Dev

如何计算(x,y)点列表的旋转(近似)

来自分类Dev

如何在嵌套的SVG元素上设置旋转点

来自分类Dev

如何围绕一个点旋转图片框?

来自分类Dev

如何围绕其底部点旋转 SKShapeNode 线

来自分类Dev

如何在python中围绕中心点旋转图形

来自分类Dev

使用四元数围绕轴旋转多个点

来自分类Dev

使用 Math.Asin() 旋转一个点

来自分类Dev

使用swift和spriteKit,如何围绕节点外部的点旋转SKSpriteNode?

来自分类Dev

如何计算两点之间的角度并在其上旋转第三点浆糊?

来自分类Dev

如何在Matlab中将通过松散选项旋转的图像中的点转换为通过裁切选项旋转的图像中的点?

来自分类Dev

如何旋转正方形以最小化每个点与四个任意点之间的距离?

Related 相关文章

热门标签

归档