[Sie-announce] SIEコード [1907] cコマンドとsコマンドのバグを修正

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2010年 6月 20日 (日) 23:30:09 JST


Revision: 1907
          http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1907
Author:   dhrname
Date:     2010-06-20 23:30:09 +0900 (Sun, 20 Jun 2010)

Log Message:
-----------
cコマンドとsコマンドのバグを修正

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

Modified: branches/06x/061/org/w3c/dom/svg.js
===================================================================
--- branches/06x/061/org/w3c/dom/svg.js	2010-06-20 13:29:12 UTC (rev 1906)
+++ branches/06x/061/org/w3c/dom/svg.js	2010-06-20 14:30:09 UTC (rev 1907)
@@ -2055,12 +2055,8 @@
           } else if (dii === "a") {
             s = tar.createSVGPathSegArcRel(di[j+5], di[j+6], di[j], di[j+1], di[j+2], di[j+3], di[j+4]);
             j += 6;
-          } else if (dii === "Z") {
+          } else if (dii === "Z" || dii === "z") {
             s = tar.createSVGPathSegClosePath();
-            break;
-          } else if (dii === "z") {
-            s = tar.createSVGPathSegClosePath();
-            break;
           } else if (dii === "S") {
             s = tar.createSVGPathSegCurvetoCubicSmoothAbs(di[j+2], di[j+3], di[j], di[j+1]);
             j += 3;
@@ -2092,7 +2088,6 @@
        *変換をする処理。相対座標を絶対座標に変換して、M、L、Cコマンドに正規化していく
        */
       var cx = 0, cy = 0; //現在セグメントの終了点の絶対座標を示す (相対座標を絶対座標に変換するときに使用)
-      var xn = 0, yn = 0; //subpath の始点の絶対座標を示す (SコマンドやTコマンドなどで使用)
       for (var j=0, tli=tlist.numberOfItems;j<tli;++j) {
         var ti = tlist.getItem(j), ts = ti.pathSegType, dii = ti.pathSegTypeAsLetter;
         if (ts === SVGPathSeg.PATHSEG_UNKNOWN) {
@@ -2212,8 +2207,8 @@
             })(ti, cx, cy, rx, ry, tar, tnl);
           } else if (dii === "S") {
             if (j !== 0) {
-              var tg = tlist.getItem(j-1);
-              if (tg.pathSegTypeAsLetter === "C" || tg.pathSegTypeAsLetter === "c") {
+              var tg = tnl.getItem(tnl.numberOfItems-1);
+              if (tg.pathSegTypeAsLetter === "C") {
                 var x1 = 2*tg.x - tg.x2;
                 var y1 = 2*tg.y - tg.y2;
                 tnl.appendItem(tar.createSVGPathSegCurvetoCubicAbs(cx, cy, x1, y1, ti.x2, ti.y2));
@@ -2221,8 +2216,8 @@
             }
           } else if (dii === "s") {
             if (j !== 0) {
-              var tg = tlist.getItem(j-1);
-              if (tg.pathSegTypeAsLetter === "C" || tg.pathSegTypeAsLetter === "c") {
+              var tg = tnl.getItem(tnl.numberOfItems-1);
+              if (tg.pathSegTypeAsLetter === "C") {
                 var x1 = 2*tg.x - tg.x2;
                 var y1 = 2*tg.y - tg.y2;
                 tnl.appendItem(tar.createSVGPathSegCurvetoCubicAbs(cx, cy, x1, y1, ti.x2+rx, ti.y2+ry));
@@ -2230,8 +2225,8 @@
             }
           } else if (dii === "T" || dii === "t") {
             if (j !== 0) {
-              var tg = tlist.getItem(j-1);
-              if (tg.pathSegTypeAsLetter === "Q" || tg.pathSegTypeAsLetter === "q") {
+              var tg = tnl.getItem(tnl.numberOfItems-1);
+              if (tg.pathSegTypeAsLetter === "C") {
                 var x1 = 2*tg.x - tg.x1;
                 var y1 = 2*tg.y - tg.y1;
                 tnl.appendItem(tar.createSVGPathSegCurvetoCubicAbs(cx, cy, (rx + 2*x1) / 3, (ry + 2*y1) / 3, (2*x1 + cx) / 3, (2*y1 + cy) / 3));




Sie-announce メーリングリストの案内
Back to archive index