[Sie-announce] SIEコード [2344] SVGMatrixのrotateFromVectorメソッドがラジアンを間違えていたため修正

アーカイブの一覧に戻る

svnno****@sourc***** svnno****@sourc*****
2011年 1月 30日 (日) 21:05:05 JST


Revision: 2344
          http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=2344
Author:   dhrname
Date:     2011-01-30 21:05:05 +0900 (Sun, 30 Jan 2011)

Log Message:
-----------
SVGMatrixのrotateFromVectorメソッドがラジアンを間違えていたため修正

Modified Paths:
--------------
    branches/06x/069/org/w3c/dom/svg.js

Modified: branches/06x/069/org/w3c/dom/svg.js
===================================================================
--- branches/06x/069/org/w3c/dom/svg.js	2011-01-29 11:08:11 UTC (rev 2343)
+++ branches/06x/069/org/w3c/dom/svg.js	2011-01-30 12:05:05 UTC (rev 2344)
@@ -1820,17 +1820,21 @@
     m.c = -m.b;
     m.d = m.a;
     var s =  this.multiply(m);
-    m = null;
+    m = rad = null;
     return s;
   },
   //座標(x, y)と原点の角度の分だけ、回転する
   /*SVGMatrix*/ rotateFromVector : function(/*float*/ x, /*float*/ y ) {
-    if (x === 0 || y === 0) {
+    if ((x === 0) || (y === 0) || !isFinite(x) || !isFinite(y)) {
       throw (new SVGException(SVGException.SVG_INVALID_VALUE_ERR))
     }
-    var m = this.rotate(Math.atan2(y, x));
+    var m = new SVGMatrix(), rad = Math.atan2(y, x);
+    m.a = Math.cos(rad);
+    m.b = Math.sin(rad);
+    m.c = -m.b;
+    m.d = m.a;
     var s =  this.multiply(m);
-    m = null;
+    m = rad = null;
     return s;
   },
   /*SVGMatrix*/ flipX : function() {




Sie-announce メーリングリストの案内
アーカイブの一覧に戻る