svnno****@sourc*****
svnno****@sourc*****
2009年 11月 20日 (金) 21:57:49 JST
Revision: 1422
http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1422
Author: dhrname
Date: 2009-11-20 21:57:49 +0900 (Fri, 20 Nov 2009)
Log Message:
-----------
縦書きの句読点対応
Modified Paths:
--------------
branches/05x/054/sie.js
Modified: branches/05x/054/sie.js
===================================================================
--- branches/05x/054/sie.js 2009-11-19 13:49:08 UTC (rev 1421)
+++ branches/05x/054/sie.js 2009-11-20 12:57:49 UTC (rev 1422)
@@ -2006,15 +2006,7 @@
x += fontSize / Math.SQRT2;
y -= fontSize / Math.SQRT2;
}
- var matrix = new Matrix(fe, 0, 0, -fe, x, y);
- if ("「」--==<><>~[]{}{}()()".indexOf(data.charAt(i)) > -1) { //カッコの場合
- /*以下では、フォント平方の真ん中を中心として、
- *90度回転させることにより、縦書きでのカッコをうまく表示させる(要日本語の知識)
- */
- var a = Math.cos(Math.PI/2), b = Math.sin(Math.PI/2), c = -b, d = a, e = (1-a-c) * fontSize / 2, f = (1-b-d) * fontSize / 2;
- matrix = (new Matrix(a, b, c, d, e, f)).multiply(matrix);
- }
- NAIBU.pathData(glyphData[i], path, true, ti.w, ti.h, matrix);
+ NAIBU.pathData(glyphData[i], path, true, ti.w, ti.h, (new Matrix(fe, 0, 0, -fe, x, y)) );
adv += advanceX[i];
}
}
@@ -2104,27 +2096,24 @@
if (advanceX[i] !== void 0) { //配列に含まれていれば
var path = ti.ownerDocument.createElementNS(NAIBU.svgNameSpace, "path");
//advance、すなわち字幅の長さ分、ずらしていく
+ ti.parentNode.insertBefore(path, ti);
+ path.style.cssText = style.cssText;
+ var matrix = new Matrix(fe, 0, 0, -fe, 0, 0);
if (isTategaki) {
var y= dy + adv*fe, x = dx;
+ if ("、。".indexOf(data.charAt(i)) > -1) { //句読点の場合
+ x += fontSize / Math.SQRT2;
+ y -= fontSize / Math.SQRT2;
+ }
+ matrix.e = x;
+ matrix.f = y;
} else {
- var x = dx + adv*fe, y= dy;
+ matrix.e = dx + adv*fe;
+ matrix.f = dy;
}
- ti.parentNode.insertBefore(path, ti);
- path.style.cssText = style.cssText;
- if ("、。".indexOf(data.charAt(i)) > -1) { //句読点の場合
- x += fontSize / Math.SQRT2;
- y -= fontSize / Math.SQRT2;
- }
- var matrix = new Matrix(fe, 0, 0, -fe, x, y);
- if ("「」--==<><>~[]{}{}()()".indexOf(data.charAt(i)) > -1) { //カッコなど記号の場合
- /*以下では、フォント平方の真ん中を中心として、
- *90度回転させることにより、縦書きでの記号をうまく表示させる(要日本語の知識)
- */
- var a = Math.cos(Math.PI/2), b = Math.sin(Math.PI/2), c = -b, d = a, e = (1-a-c) * fontSize / 2, f = (1-b-d) * fontSize / 2;
- matrix = (new Matrix(a, b, c, d, e, f)).multiply(matrix);
- }
NAIBU.pathData(glyphData[i], path, false, 0, 0, matrix);
adv += advanceX[i];
+ matrix = null;
}
}
advanceX = glyphData = null;