Ich möchte ein 2D-Spiel in Pygame machen, und dazu möchte ich mathematische Matrizen verwenden. Ich dachte, ich denke richtig, aber ich habe ein Problem. Hier ist es: Also mache ich einen zufälligen Punkt und ich zähle die Länge seines Vektors (von 0,0), dann möchte ich mit Hilfe der Gleichung der Matrix-Verschiebung (2D) diesen Punkt verschieben, sagen wir mal +1 Grad. Und ich habe ein Ergebnis, aber warte, warum ist die Länge des übertragenen Vektors anders als die andere? Alle Antworten zu erkennen ist, thx :)Matrix-Rotation in numpy Python, verschiedene Länge des Vektors
Hier ist mein Code:
import numpy
import math
import random
#length of wector
def R(w0):
#start point coordinates
x0 = y0 = 0
#new point coordinates
x1 = w0[0][0]
y1 = w0[1][0]
r = math.sqrt((x1 - x0)**2 + (y1-y0)**2)
return r
#matrix rotation by 1 deg
rad = math.pi/180
Tm = numpy.matrix([[math.acos(rad),-math.asin(rad)], [math.asin(rad), math.acos(rad)]])
#w0
x0 = random.randint(1, 5)
y0 = random.randint(1, 5)
w0 = numpy.matrix([[x0],[y0]])
r0 = R(w0)
print "x0: ",w0[0][0], "y0: ",w0[1][0], "r0: ", r0
#w0'
w1 = Tm * w0
r1 = R(w1)
print "x1: ",w1[0][0], "y1: ",w1[1][0], "r1: ", r1
Da u sehen können, die r0 und r1 sind diffrent:/
thx! es funktioniert jetzt gut: D –