2013-03-02 5 views
5

たとえば、bezierCurveTo()というセリフを使用して曲がったパスを作成したとします。フレームごとに描画される割合を増やして、徐々にアニメーションに表示させたいと思います。問題は、私がキャンバスパスの一部だけを描く標準的な方法を見つけることができないことです。これを達成するためのよい方法(またはトリッキーな方法)を誰かが知っていますか?HTML5のキャンバスに部分的にパスを描画する方法は?

+1

これまでの質問に対するこの回答は、あなたにとって役に立ちます。 http://stackoverflow.com/questions/878862/drawing-part-of-a-bezier-curve-by-reusing-a-basic-bezier-curve-function – jing3142

+0

ああ、それはとても役に立ちます。名声。 – Gnurou

答えて

2

ちょうどまさにその小さなライブラリを見つけましたペイロード。

2

確かに...そしてサイモン・ポリットは私たちのためにすべての難しい数学をしました!

jsBezierは、ベジェ曲線に沿って各点を段階的にプロットできるpointAlongCurveFrom(curve、location、distance)関数を持つ小さなlibです。

jsBezierはGitHubの上で提供されています:それはラファエルlibに(http://raphaeljs.com/)に依存している、と一緒に入れ2が大きすぎることはありませんhttps://github.com/camoconnell/lazy-line-painter

https://github.com/sporritt/jsBezier

+0

ありがとう - しかし、私はこの方法(曲線に沿って描画点)を他の環境で試してみましたが、残念なことに、オーバードローが高いために結果がかなり遅いです。これは、ダッシュを使用する方法が標準化されるまで使用できます(破線を使用すると簡単にこの効果が得られます)。他の答えにはまだ開いています。 – Gnurou

+0

ところで、私はそれを試したことはありませんが、Chromeは現在、context.setLineDash([5])で破線をサポートしていると思います。 – markE

+0

それは正しい - 私は完全に互換性のあるゾーンに滞在したいと思います:) – Gnurou