>>Delta

移動前移動後の点のセットから座標変換マトリックスを作る

2014年9月 7日

移動前移動後の点のセットから座標変換マトリックスを作る

さっきのポーズとる前→ポーズとった後の変換行列を求めて差し替え用のパーツを在るべき位置にはめ込むというやつは解決しましたのでやり方をご紹介.

まず変換前と変換後の座標をそれぞれ次のように置きます.

  • 変換前 \begin{Bmatrix} x \\ y \\ z \\ 1 \end{Bmatrix},変換後 \begin{Bmatrix} x^\prime \\ y^\prime \\ z^\prime \\ 1 \end{Bmatrix}

変換行列は4×4の行列になるので変換前と変換後の対が4組あれば方程式が立てられます.

  • \begin{bmatrix} x_1^\prime & x_2^\prime & x_3^\prime & x_4^\prime \\ y_1^\prime & y_2^\prime & y_3^\prime & y_4^\prime \\ z_1^\prime & z_2^\prime & z_3^\prime & z_4^\prime \\ 1 & 1 & 1 & 1 \end{bmatrix} =  \begin{bmatrix} a & b & c & d \\ e & f & g & h \\ i & j & k & l \\ m & n & o & p \end{bmatrix} \begin{bmatrix} x_1 & x_2 & x_3 & x_4 \\ y_1 & y_2 & y_3 & y_4 \\ z_1 & z_2 & z_3 & z_4 \\ 1 & 1 & 1 & 1 \end{bmatrix}

このa~pを決定できれば問題解決です.

  • \begin{split} [x^\prime] &= [A] [x] [A] &= [x^\prime][x]^{-1} \end{split}

pythonに解いてもらって完成.

import numpy as np

# 行列x
matBefore = np.array([
    [-5.889599323272705e-01,  4.797607362270355e-01,  5.793557167053223e+00, 1.0],
    [-4.870399534702301e-01, -6.359863281250000e-02,  5.654996395111084e+00, 1.0],
    [ 0.000000000000000e+00, -1.063110381364822e-01,  5.825235843658447e+00, 1.0],
    [ 0.000000000000000e+00,  4.501586854457855e-01,  5.965075969696045e+00, 1.0]
]).T

# 行列x^\prime
matAfter = np.array([
    [ 4.853953361511230e+00,  5.070699310302734e+01,  1.770071029663086e+01, 1.0],
    [ 4.817562103271484e+00,  5.016485214233398e+01,  1.752869987487793e+01, 1.0],
    [ 5.278203964233398e+00,  4.999197006225586e+01,  1.768973922729492e+01, 1.0],
    [ 5.416565895080566e+00,  5.052135086059570e+01,  1.786248016357422e+01, 1.0]
]).T

matTransform = np.dot(matAfter, np.linalg.inv(matBefore))

print matTransform

目をコピーしてきてはめ込み.無事に収まりました.

投稿者 CASPAR003
投稿時刻 19:09
カテゴリー Shade
コメント 0 件
トラックバック 0 件
記事へのリンク http://www.caspar003.info/delta/archive/2014/09/07/1909.html
コメント
投稿者
コメント
トラックバック
  • トラックバック

ブログ情報

カレンダー
2018年2月
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28
最近のエントリー
最近のコメント
コメントを頂いたエントリー
コメントをくださった方一覧
コピー用紙の裏表
でった☆
CASPAR003
あのー
CASPAR003
amumo
CASPAR003
mariko
kazu
お仕事で青ざめた話
iun
iun
CASPAR003
AcrobatでPDFの一括印刷
Caesar
CASPAR003
Shadeのレンダラー仕様メモ
iun
CASPAR003
ブログ同盟本 C87 3日目 東S-04b
CON$
CASPAR003
Ca3 Post_Effector 2.0
sisioumaru
CASPAR003
sisioumaru
CASPAR003
Shade15について雑感
iun
CASPAR003
iun
色について
iun
CASPAR003
Lv67
iun
CASPAR003
雪まつり行ってきたよ
iun
CASPAR003