2

SVGPath.getBBox()少なくとも WebKit での実装は、ややお粗末に見えます。適切な読み取りを得るために、パスを歩く (またはランダムに何度もサンプリングする) よりも良い (安価な) 方法はありますか?

http://bl.locks.org/2939938 (またはhttps://gist.github.com/2939938 ) は後者の例を示しており、いくつかの異なるかなり最新のブラウザーで実行すると、ネイティブ実装。Opera が最高、Firefox が最高、Chrome / Safari が特に悪い:

616.1572 677.0540 127.6856 126.8793 - sampled, gathering random coords for 5s (reference)
616.1569 677.0538 127.6860 126.8796 - opera 11.64 build 1403
616.1563 677.0547 127.6875 126.8789 - firefox aurora 15.0a2 (2012-06-15)
614.2805 673.9761 136.2089 129.9573 - chrome canary 21.0.1176.0
614.2805 673.9761 136.2089 129.9573 - safari 5.1.7 (7534.57.2)

または、参照境界ボックスからの左/上/幅/高さの変化 (パーセント):

0.00005% 0.00003% 0.00031% 0.00024% - opera
0.00015% 0.00010% 0.00149% 0.00032% - firefox
0.30458% 0.45460% 6.67522% 2.42593% - chrome
0.30458% 0.45460% 6.67522% 2.42593% - safari
4

1 に答える 1

1

特に要素がある場合、Raphael.jsはかなり優れたRaphael.pathBBoxを実装していることがわかります。代数的に正確に見え、高速です。比較テストページに追加されました。<path>

于 2012-07-09T05:20:11.407 に答える