LoginSignup
0
0

More than 5 years have passed since last update.

アフィン変換/平行移動だって変換行列で(Excelで)

Last updated at Posted at 2016-12-16

'①もっと短くなりますか?
'②vbaのworksheet.function.minverseでfunctionの書き換えを探しています。

'XY座標変換,座標変換(移動、回転),二点法変換,2点間変換(または、へルマート変換)
'http://d.hatena.ne.jp/Zellij/touch/20120523/p1
'(参考)アフィン変換/平行移動だって変換行列で
'http://qiita.com/yuba/items/7fb6a49adfda8fa466d8
'(参考)Excelの計算式をテキストファイルに出力してみた
'以下Excelのデータ説明
'関数の入力時,Ctrl+Shift+Enterが必要です。
'設定データ:座標系1(0,0)→座標系2(0,1)-----------------------------------
1行 1列目: 0
1行 2列目: 0
1行 3列目: 0
1行 4列目: 1
'設定データ:座標系1(1,0)→座標系2(0,0)-----------------------------------
2行 1列目: 1
2行 2列目: 0
2行 3列目: 0
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)
'変換行列の表示------------------------------------------------------------
9行 1列目: =M4
9行 2列目: =-M5
9行 3列目: =M6
'
10行 1列目: =M5
10行 2列目: =M4
10行 3列目: =M7
'
11行 1列目: 0
11行 2列目: 0
11行 3列目: 1
'入力データ1:座標系1(0,0)→出力データ座標系2(x,y)---------------------------
13行 1列目: 0
13行 2列目: 0
13行 3列目: 1
13行 5列目: =TRANSPOSE(MMULT($A$9:$C$11,TRANSPOSE(A13:C13)))
13行 6列目: =TRANSPOSE(MMULT($A$9:$C$11,TRANSPOSE(A13:C13)))
13行 7列目: =TRANSPOSE(MMULT($A$9:$C$11,TRANSPOSE(A13:C13)))
'入力データ2:座標系1(0,1)→出力データ座標系2(x,y)---------------------------
14行 1列目: 1
14行 2列目: 0
14行 3列目: 1
14行 5列目: =TRANSPOSE(MMULT($A$9:$C$11,TRANSPOSE(A14:C14)))
14行 6列目: =TRANSPOSE(MMULT($A$9:$C$11,TRANSPOSE(A14:C14)))
14行 7列目: =TRANSPOSE(MMULT($A$9:$C$11,TRANSPOSE(A14:C14)))

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0