4

私は次のようにSVGパスを描画します:

始める:

M x, y

曲線を追加

Q x1, y1, x, y

などなど...そしてパスを閉じたいときは追加するだけですZ

しかし、その最後の線分には現在、コントロールポイントがありません。

パスを閉じて、その最後のセグメントにコントロールポイントを設定するにはどうすればよいですか?

次のようなものです。Z Q x1, y1ここで、Zはパス(現在のポイントから最初のポイント)を閉じますが、直線だけでなく、x1とy1を制御ポイントとして使用します。

4

1 に答える 1

4

私はあなたの願望を理解しています。Illustratorでフリーハンドのブロブを描画するたびに、常に元のポイントに最終ポイントを設定し、ドラッグして両側のコントロールポイントの接線を作成します。

SVGにはこのような機能はありません。これを行うpathコマンドはありません。最も近いのは短縮パスコマンドSTですが、これらはのコマンドの最後のコントロールポイントから最初のコントロールポイントを派生させますが、必要なのは次のコマンドの最初のコントロールポイントから2番目のコントロールポイントを派生させるものです(wrap-スタイルの周り)。

これはJavaScriptで行うことができます。たとえば、次のようなマークアップを使用できます。

<path d="… Z" class="smooth-close" />

smooth-close…そして、すべてのパスを見つけ、最初のコマンドから適切なコントロールポイントを決定し、SまたはTコマンドを生成してパスデータに追加する小さなスクリプト。のタグを付けなかったので、そのような解決策はあなたに興味がないと思います。

于 2012-04-18T03:17:45.967 に答える