HTMLで行列(matrix) (1回目)

2021/7/1(木)

HTML行列(matrix) (1)

 

(by ULproject for HTML,JavaScript,canvas)

 


 

 






点を並進、回転移動させる行列を作り

ワイヤーフレーム(線画)の立体を

ラジコンや自分が移動する

(1,2キーで切り替え、キー操作はプログラムの

最終行のコメントに書いています)

ように動かしていきます

 

このシリーズは、プログラム出来るだけ似せて

移植していますので、解説を省略しています

式などに関する説明も省略していますので

詳しくは

N88-BASICで行列(matrix) (1回目)

を見てください

 

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]|

で表す事にします

 

  |1 0 0 x|

A=|0 1 0 y|

  |0 0 1 z|

  |0 0 0 1|

です

 

カレント行列Mに対して

M=MAはラジコンのような移動、

M=AMは自分が動く動作になり、

Modeの値で切替えています

どちらも物体を動かす方向になり、

M=AMでは自分が逆向きに動く

指定方法になりますので注意が必要です

プログラムではキー入力の所で、

M=AMの時は、符号を変える処理を

しています

 

ベクトルp=(x,y,z)、p1=(x',y',z')

Mを行列として上記式はp1=Mp

と表せます

今回のベクトルは3次元ですので

4次元目は無視(常に1と)します

 

blg~.zip(mat001.html)は

以下のリンクからダウンロードできます

VL-BASIC(N88-BASIC互換?)ホームページ

Readme.txtを読んで遊んで下さい


次回

HTMLで行列(matrix) (2回目)


このブログの人気の投稿

NEWS

N88-BASICでゲーム (1回目)