OSDN Git Service

[Backup]NyARToolkit for Java
authornyatla <nyatla@7cac0a50-4618-4814-88d0-24b83990f816>
Thu, 8 Oct 2009 13:19:57 +0000 (13:19 +0000)
committernyatla <nyatla@7cac0a50-4618-4814-88d0-24b83990f816>
Thu, 8 Oct 2009 13:19:57 +0000 (13:19 +0000)
NyARTransmatResultにAngle取得API追加

readme.ja.txt
src/jp/nyatla/nyartoolkit/core/transmat/NyARTransMatResult.java
src/jp/nyatla/nyartoolkit/sample/RawFileTest.java

index c4fb3a9..d4726e9 100644 (file)
@@ -29,18 +29,25 @@ http://www.hitl.washington.edu/artoolkit/
 \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
@@ -175,21 +182,18 @@ NyARToolkit.sample.qt
 \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
index e6a4a45..cb99482 100644 (file)
@@ -32,6 +32,7 @@
 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
@@ -41,4 +42,25 @@ import jp.nyatla.nyartoolkit.core.types.matrix.*;
 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
index 7e11a02..0081f43 100644 (file)
@@ -39,7 +39,7 @@ import jp.nyatla.nyartoolkit.core.param.NyARParam;
 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
@@ -94,6 +94,8 @@ public class RawFileTest
                        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