2012-04-13 5 views
4

私はさまざまな変換の下で行列を表示するプログラムを作っていましたが、それらはすべて私の回転行列以外は動作します。 IVEは、それをいじってみましたが、何もPythonのcosのドキュメントとsinポイントアウトしたようnumpy(python)のローテーション行列が動作しません。

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

答えて

10

を動いていないようにみえ、引数はラジアン、ないにする必要があります。

関数を使用して度をラジアンに変換できます。

+0

ありがとうございました – goomba

2

あなたのマトリックスが正しく定義されていません。

vector = rotMatrix.dot(vector) 

ベクトルべき:あなたがベクトルを定義する場合、あなたはその後、行列乗算方法 'ドット' を使用して、原点の周りにこのベクトルを回転させることができ

vector = array([1, 0]) 

言う

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

をお試しください原点を中心にangle度(前に述べたように放射角度で)回転させてください。

関連する問題