原谅我,自从我拿出矩阵数学以来已经将近20年了。
我在太空中有一点:
point1 = (x, y)
我有一个缩放器:
scaler = 0.5
我有一个转换矩阵:
xform_matrix = [
( 1.0, 1.0),
( 1.0, -1.0),
(-1.0, -1.0),
(-1.0, 1.0)
]
我希望最终矩阵为:
new_matrix = [
(x + (1.0) * 0.5, y + (1.0) * 0.5),
(x + (1.0) * 0.5, y - (1.0) * 0.5),
(x - (1.0) * 0.5, y - (1.0) * 0.5),
(x - (1.0) * 0.5, y + (1.0) * 0.5),
]
执行上述翻译的numpy矩阵操作是什么?
提前多多谢谢!
答案 0 :(得分:4)
我认为以下是您正在寻找的内容:
>>> point1 = (3, 5)
>>> scalar = 0.5
>>> xform_matrix = np.array([[1., 1.], [1., -1.], [-1., -1.], [-1., 1.]])
>>> (xform_matrix * scalar) + point1
array([[ 3.5, 5.5],
[ 3.5, 4.5],
[ 2.5, 4.5],
[ 2.5, 5.5]])
如果您真的打算在添加后应用标量(x + 1.0) * 0.5
,那么您可以使用以下内容:
>>> (xform_matrix + point1) * scalar
array([[ 2., 3.],
[ 2., 2.],
[ 1., 2.],
[ 1., 3.]])