Ticket #12656

path 要素の処理の最適化、その他
Open Date: 2008-05-31 09:35 Last Update: 2008-09-06 19:37

Reporter:
Owner:
Status:
Closed
Component:
(None)
MileStone:
(None)
Priority:
7
Severity:
5 - Medium
Resolution:
Fixed
File:
3

Details

可読性の向上とサイズの削減を目的に、あちこち書き換えま
した。変更箇所が非常に多いので、SIE 0.24 との差分と、書
き換え後のファイルの両方をまとめて添付しておきます。


変更点:

・path 要素の処理を大幅に整理

・new Array(a, b, ...) となっている箇所を [a, b, ...]
の形に書き換え

・parseFloat() の処理はなるべくオブジェクト作成時に行う
ように書き換え

・空白かカンマで区切る処理を、正規表現で split する簡潔
なものに書き換え

・this.tar.~ となっている箇所を var ele = this.tar;
ele.~ のように書き換え

・coordorigin の設定を削除 (typo があったのと、設定しな
くても "0 0" がデフォルト値なため)

・line 要素や rect 要素で、パラメータが指定されていない
場合のデフォルト値をゼロに設定

・rect 要素の処理で、係数を 0.5228 → 0.55228 に修正

・行末のセミコロンがない箇所にセミコロンを追加

・行末の余分な空白の削除

・使われていない変数を削除

・その他、コードの整理

Ticket History (3/14 Histories)

2008-05-31 09:35 Updated by: revulo
  • File 2349: sie-0.24a.zip is attached
2008-05-31 19:23 Updated by: dhrname
  • Resolution Update from None to Works For Me
  • Owner Update from (None) to dhrname
  • Priority Update from 5 - Medium to 7
Comment
Logged In: YES
user_id=32883

ありがとうございます。
さっそく使わせてもらいます。
2008-05-31 23:53 Updated by: dhrname
Comment
Logged In: YES
user_id=32883

仕様に一部、対応していなかったので、こちらで修正しておきまし
た。修正したコードを後日、挙げておきます。

とりあえず、根拠となる仕様の箇所は以下のとおりです。
>相対の "moveto"(m)がパスの最初に現れた場合のパラメタは絶
対座標と見なされる。
http://www.hcn.zaq.ne.jp/___/REC-SVG11-20030114/
paths.html#PathDataMovetoCommandsより引用
2008-06-01 01:47 Updated by: revulo
Comment
Logged In: YES
user_id=33975

そのままのコードで仕様通りの動作をすると思うので、確認してみ
て下さい。パスの最初の M を m に書き換えても、同じ図形が描か
れるはずです。

パスの最初では、相対座標の基準点が (0,0) になっているので、
そこから相対ベクトル (x,y) の分だけ移動する処理を普通に行え
ば、結局、絶対座標 (x,y) に移動するのと同じことになります。
2008-06-01 15:42 Updated by: revulo
  • File 2352: sie-0.24b.zip is attached
Comment
Logged In: YES
user_id=33975

すみません。このように複数のサブパスで構成されている場合の、
m コマンドの処理を削ってしまっていました。
<path d="m 100 100 l 100 -50 100 50 z m 100 100 v 100 z"
fill="red" stroke="blue" stroke-width="3" />

修正しましたので、0.24a との差分、および書き換え後のファイル
を添付しておきます。
2008-06-01 18:46 Updated by: dhrname
  • Resolution Update from Works For Me to Accepted
Comment
Logged In: YES
user_id=32883

こちらこそ、すみません。修正したファイルは使わせていただきま
す。ありがとうございました。
2008-06-08 00:36 Updated by: revulo
Comment
Logged In: YES
user_id=33975

ほんの少し書き直しました。処理の順番を変えただけですが、この
方が分かりやすくなると思います。
2008-06-08 00:36 Updated by: revulo
  • File 2387: sie-0.24c.diff is attached
2008-06-08 21:20 Updated by: dhrname
Comment
Logged In: YES
user_id=32883

了解です。チェックしてみます。
2008-06-09 23:06 Updated by: dhrname
Comment
Logged In: YES
user_id=32883

パッチに不具合があったので、リビジョン350で修正しています。
修正した部分は、リビジョン349との差分で示しておきます。

http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi/branches/02x/
025/sie025.js?root=sie&rev=350&r1=349&r2=350

コードの量が多少増えていますが、読みやすくなったので、このま
までリリースしていきたいと思います。
2008-06-10 00:30 Updated by: revulo
Comment
Logged In: YES
user_id=33975

なるほど、確かにコマンドが q の場合の対応が抜けていました。
修正していただきありがとうございます。
2008-06-10 23:17 Updated by: dhrname
Comment
Logged In: YES
user_id=32883

0.25で反映させました。

revuloさんへ。改めて、ありがとうございます。
2008-08-25 20:41 Updated by: dhrname
  • Resolution Update from Accepted to Fixed
2008-09-06 19:37 Updated by: dhrname
  • Ticket Close date is changed to 2008-09-06 19:37
  • Status Update from Open to Closed

Attachment File List

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login