4

我正在制作一个程序来显示各种变换下的矩阵,除了我的旋转矩阵之外,它们都可以工作。我试过摆弄它,但似乎没有任何效果

y = input("how many degrees do you want to rotate the shape around the origin?:    ")
j = array([(cos(int(y)), -sin(int(y))), (sin(int(y)), cos(int(y)))])
print(j.dot(w))
input("enter to exit")
4

2 回答 2

10

正如 python 文档所cos指出sin的那样,参数应该是弧度,而不是度数

您可以使用该math.radians函数将度数转换为弧度。

于 2012-04-13T01:53:59.510 回答
2

您的矩阵未正确定义。尝试

rotMatrix = array([[cos(angle), -sin(angle)], 
                   [sin(angle),  cos(angle)]])

如果你定义一个向量,说

vector = array([1, 0])

然后,您可以使用矩阵乘法方法“点”围绕原点旋转该向量:

vector = rotMatrix.dot(vector)

向量应该绕原点旋转angle度数(辐射角,如前所述)。

于 2013-02-05T21:09:15.087 回答