HTMLで行列(matrix) (2回目)
2021/7/2(金)
HTMLで行列(matrix) (2回目)
(by ULproject for HTML,JavaScript,canvas)
点を並進、回転移動させる行列を作り
ワイヤーフレーム(線画)の立体を
ラジコンや自分が移動する
(1,2キーで切り替え、キー操作はプログラムの
最終行のコメントに書いています)
ように動かしていきます
このシリーズは、プログラムを出来るだけ似せて
移植していますので、解説を省略しています
式などに関する説明も省略していますので
詳しくは
を見てください
HTML,JavaScript,canvasは、使い慣れていない
ため、不具合などが多々あると思いますが、
ご了承ください
ここから、行列は大文字、
ベクトルとスカラーは小文字で表す事にします
行列は4×4(4行4列)とし、
ベクトルは3次元(4次元目は常に1)とします
またベクトル上部の矢印は省いています
JavaScriptでは行列Aの成分を、
|A[0] A[4] A[ 8] A[12]|
|A[1] A[5] A[ 9] A[13]|
|A[2] A[6] A[10] A[14]|
|A[3] A[7] A[11] A[15]|
で表す事にします
r11 = n1n1+(1-n1n1)cosθ
r22 = n2n2+(1-n2n2)cosθ
r33 = n3n3+(1-n3n3)cosθ
r12 = n1n2(1-cosθ)-n3sinθ
r21 = n2n1(1-cosθ)+n3sinθ
r13 = n1n3(1-cosθ)+n2sinθ
r31 = n3n1(1-cosθ)-n2sinθ
r23 = n2n3(1-cosθ)-n1sinθ
r32 = n3n2(1-cosθ)+n1sinθ
となり、回転行列Aは
|r11 r12 r13 0|
A=|r21 r22 r23 0|
|r31 r32 r33 0|
|0 0 0 1|
並進行列Aは
|1 0 0 x|
A=|0 1 0 y|
|0 0 1 z|
|0 0 0 1|
です
blg~.zip(mat002.html)は
以下のリンクからダウンロードできます
Readme.txtを読んで遊んで下さい