'線分上の最も近い点/Excelの行列関数を使った(スマートな?)解法
'(参考)図形情報を扱うのに大事なことは、全部高校で教わった
'http://qiita.com/yuba/items/2f35d1e5e162f44fc1b3
'(参考)Excelの計算式をテキストファイルに出力してみた
①変換行列の正式名称を教えて下さい。(日本語英語)
②もっと短くなりますか
'関数の入力時,Ctrl+Shift+Enterが必要です。
'座標系1(0,0)→座標系2(0,0)--------------------------------------------
1行 1列目: 0
1行 2列目: 0
1行 3列目: 0
1行 4列目: 0
'座標系1(1,1)→座標系2(2点間の距離,0)
2行 1列目: 1
2行 2列目: 1
2行 3列目: =SQRT((A2-A1)^2+(B2-B1)^2)
2行 4列目: 0
'cos,sin,tx,tyの計算------------------------------------------
4行 1列目: =A1
4行 2列目: =-B1
4行 3列目: 1
4行 4列目: 0
4行 6列目: =MINVERSE(A4:D7)
4行 7列目: =MINVERSE(A4:D7)
4行 8列目: =MINVERSE(A4:D7)
4行 9列目: =MINVERSE(A4:D7)
4行 11列目: =C1
4行 13列目: =MMULT(F4:I7,K4:K7)
'
5行 1列目: =B1
5行 2列目: =A1
5行 3列目: 0
5行 4列目: 1
5行 6列目: =MINVERSE(A4:D7)
5行 7列目: =MINVERSE(A4:D7)
5行 8列目: =MINVERSE(A4:D7)
5行 9列目: =MINVERSE(A4:D7)
5行 11列目: =D1
5行 13列目: =MMULT(F4:I7,K4:K7)
'
6行 1列目: =A2
6行 2列目: =-B2
6行 3列目: 1
6行 4列目: 0
6行 6列目: =MINVERSE(A4:D7)
6行 7列目: =MINVERSE(A4:D7)
6行 8列目: =MINVERSE(A4:D7)
6行 9列目: =MINVERSE(A4:D7)
6行 11列目: =C2
6行 13列目: =MMULT(F4:I7,K4:K7)
'
7行 1列目: =B2
7行 2列目: =A2
7行 3列目: 0
7行 4列目: 1
7行 6列目: =MINVERSE(A4:D7)
7行 7列目: =MINVERSE(A4:D7)
7行 8列目: =MINVERSE(A4:D7)
7行 9列目: =MINVERSE(A4:D7)
7行 11列目: =D2
7行 13列目: =MMULT(F4:I7,K4:K7)
'変換行列の表示(AとAの逆行列)------------------------------------------
9行 1列目: =M4
9行 2列目: =-M5
9行 3列目: =M6
9行 6列目: =MINVERSE(A9:C11)
9行 7列目: =MINVERSE(A9:C11)
9行 8列目: =MINVERSE(A9:C11)
'
10行 1列目: =M5
10行 2列目: =M4
10行 3列目: =M7
10行 6列目: =MINVERSE(A9:C11)
10行 7列目: =MINVERSE(A9:C11)
10行 8列目: =MINVERSE(A9:C11)
'
11行 1列目: 0
11行 2列目: 0
11行 3列目: 1
11行 6列目: =MINVERSE(A9:C11)
11行 7列目: =MINVERSE(A9:C11)
11行 8列目: =MINVERSE(A9:C11)
'(座標変換1)----------------------------------------------
13行 1列目: 1
13行 2列目: 0
13行 3列目: 1
13行 6列目: =TRANSPOSE(MMULT(A9:C11,TRANSPOSE(A13:C13)))
13行 7列目: =TRANSPOSE(MMULT(A9:C11,TRANSPOSE(A13:C13)))
13行 8列目: =TRANSPOSE(MMULT(A9:C11,TRANSPOSE(A13:C13)))
'(座標変換2:線分上)------------------------------------------
15行 1列目: =F13
15行 2列目: 0
15行 3列目: 1
15行 6列目: =TRANSPOSE(MMULT(F9:H11,TRANSPOSE(A15:C15)))
15行 7列目: =TRANSPOSE(MMULT(F9:H11,TRANSPOSE(A15:C15)))
15行 8列目: =TRANSPOSE(MMULT(F9:H11,TRANSPOSE(A15:C15)))
'