2012-04-13 14 views
4

Ich machte ein Programm, um Matrizen unter verschiedenen Transformationen anzuzeigen, und alle von ihnen arbeiten mit Ausnahme meiner Rotationsmatrix. ive versucht, mit ihm hantieren, aber nichts scheint für cos und sin weisen darauf hin, sollten die Argumente sein in Radiant, nicht Gradmeine Rotationsmatrix für numpy (Python) funktioniert nicht

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") 

Antwort

10

Da der Python-Dokumentation zu arbeiten.

Mit der Funktion math.radians können Sie Grad in Radiant umwandeln.

+0

danke das hat funktioniert – goomba

2

Ihre Matrix ist nicht korrekt definiert. Versuchen

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

Wenn Sie einen Vektor definieren, sagen

vector = array([1, 0]) 

Sie dann diesen Vektor um Ursprung drehen kann Matrixmultiplikation Methode 'Punkt' mit:

vector = rotMatrix.dot(vector) 

Der Vektor sollte um den Ursprung von angle Grad gedreht werden (Winkel in Radiant, wie zuvor erwähnt).

Verwandte Themen