\r
・NyARToolkitの特徴\r
\r
- -ARToolKitと同等な処理シーケンスを、クラスベースで再構築してあります。\r
+ -ARToolKitと同等な処理シーケンスを、クラスベースで再構築しています。\r
\r
- -構造的な最適化により、ARToolKitと比較して可読性に優れています。\r
+ -処理構造の最適化により、ARToolKitと比較して可読性に優れています。\r
\r
- -座標変換の演算性能が1.5倍ほど高速です。(JIT有効時)複数マーカー取り扱い時は、\r
- オリジナルよりも良い成績が得られます。\r
+ -ARToolKit互換モードと、NyARToolkit最適化モードを搭載しています。(Version/2.4.0より)\r
+ \r
+ --NyARToolkit最適化モード\r
+ いくつかのアルゴリズムをARToolKitのものと差換え、高速化・精度の向上を図ります。\r
+ ARToolKit比で、約2倍高速です。(JIT有効時)複数マーカー取り扱い時は、\r
+ 更に高速になります。ただし、計算結果はARToolKitのそれと若干ズレがでます。\r
\r
- -取り扱える画像サイズに制限がありません。\r
+ --ARToolKit互換モード\r
+ ARToolKitのアルゴリズムを最適化し、高速化を図ります。\r
+ ARToolKit比で、約1倍高速です。(JIT有効時)\r
\r
- -取り扱えるマーカー個数の最大値が可変です。\r
+ -取り扱える画像サイズに制限がありません。\r
+ -取り扱えるマーカー個数の最大値が可変です。\r
+ -Idマーカシステム(NyId)が利用できます。(Version/2.3.0より)\r
\r
- -Idマーカシステム(NyId)が利用できます。(Version/2.3.0より)\r
\r
\r
\r
\r
・ライセンス\r
\r
-NyARToolkitは、商用ライセンスとGPLv2以降のデュアルライセンスを採用しています。\r
+NyARToolkitは、商用ライセンスとGPLv3以降のデュアルライセンスを採用しています。\r
+(Version/2.4.0より、GPLv3ライセンスになりました。)\r
\r
-GPLについては、LICENCE.txtをお読みください。\r
+ -GPL\r
+ GPLについては、LICENCE.txtをお読みください。\r
\r
-商用ライセンスについては、ARToolWorks社に管理を委託しております。\r
-下記URLを参考に、ARToolWorks社へお問い合わせください。\r
-http://nyatla.jp/nyartoolkit/wiki/index.php?Licence\r
-\r
-\r
-ライセンスに関する日本語でのお問い合わせについては、下記URLの連絡先にて受け付けています。\r
-http://nyatla.jp/nyartoolkit/wiki/index.php?PressRelease%2F20090407%20forward%20order%20email%20service\r
-\r
-\r
-ソースコード毎のライセンスについては、ソースコード先頭の署名をご確認ください。\r
+ -商用ライセンス\r
+ 商用ライセンスについては、ARToolWorks社に管理を委託しております。\r
+ http://www.artoolworks.com/Home.html\r
\r
+ 日本国内での販売については、下記にお問い合わせ下さい。\r
+ http://www.msoft.co.jp/pressrelease/press090928-1.html\r
\r
\r
\r
package jp.nyatla.nyartoolkit.core.transmat;\r
\r
\r
+import jp.nyatla.nyartoolkit.core.types.NyARDoublePoint3d;\r
import jp.nyatla.nyartoolkit.core.types.matrix.*;\r
\r
/**\r
public class NyARTransMatResult extends NyARDoubleMatrix34\r
{\r
public boolean has_value = false;\r
+ /**\r
+ * この関数は、0-PIの間で値を返します。\r
+ * @param o_out\r
+ */\r
+ public final void getZXYAngle(NyARDoublePoint3d o_out)\r
+ {\r
+ double sina = this.m21;\r
+ if (sina >= 1.0) {\r
+ o_out.x = Math.PI / 2;\r
+ o_out.y = 0;\r
+ o_out.z = Math.atan2(-this.m10, this.m00);\r
+ } else if (sina <= -1.0) {\r
+ o_out.x = -Math.PI / 2;\r
+ o_out.y = 0;\r
+ o_out.z = Math.atan2(-this.m10, this.m00);\r
+ } else {\r
+ o_out.x = Math.asin(sina);\r
+ o_out.z = Math.atan2(-this.m01, this.m11);\r
+ o_out.y = Math.atan2(-this.m20, this.m22);\r
+ }\r
+ } \r
}\r
import jp.nyatla.nyartoolkit.core.raster.rgb.*;\r
import jp.nyatla.nyartoolkit.core.transmat.*;\r
import jp.nyatla.nyartoolkit.detector.NyARSingleDetectMarker;\r
-\r
+import jp.nyatla.nyartoolkit.core.types.*;\r
\r
/**\r
* 320x240のBGRA32で記録されたRAWイメージから、1種類のパターンを認識し、\r
ar.getTransmationMatrix(result_mat);\r
}\r
Date d = new Date();\r
+ NyARDoublePoint3d ang=new NyARDoublePoint3d();\r
+ result_mat.getZXYAngle(ang);\r
System.out.println(d.getTime() - d2.getTime());\r
}\r
\r