並進ベクトル[T]を3次元座標[b]と基点の回転済行列[M]から計算します。
アルゴリズムは、ARToolKit 拡張現実プログラミング入門 の、P207のものです。
計算手順
[A]T]=bを、[A]TA]T]=[A]Tb]にする。
set2dVertexで[A]TA]=[M]を計算して、Aの3列目の情報だけ保存しておく。
getTransportVectorで[M]T]=[A]Tb]を連立方程式で解いて、[T]を得る。
public function NyARTransportVectorSolver(i_projection_mat_ref:NyARPerspectiveProjectionMatrix, i_max_vertex:int)
Parameters public function set2dVertex(i_ref_vertex_2d:Vector.<NyARDoublePoint2d>, i_number_of_vertex:int):void
画面上の座標群を指定します。
Parameters
| i_ref_vertex_2d:Vector.<NyARDoublePoint2d> — 歪み矯正済の画面上の頂点座標群への参照値を指定します。
|
|
| i_number_of_vertex:int |
Throws public function solveTransportVector(i_vertex3d:Vector.<NyARDoublePoint3d>, o_transfer:NyARDoublePoint3d):void
画面座標群と3次元座標群から、平行移動量を計算します。
2d座標系は、直前に実行したset2dVertexのものを使用します。
Parameters
Throws
Sun Jan 30 2011, 04:49 PM -08:00