1

次の形式のSVGパスがあります。

M352.793,422 C323.175,422 299.164,397.99 299.164,368.371 C299.164,338.753 323.175,314.742 352.793,314.742 C382.411,314.742 406.422,338.753 406.422,368.371 C406.422,397.99 382.411,422 352.793,422 z

そして、形状を変更せずに、任意の数のポイントを均等に分散して追加したいので、最終的には次のようになります。

M352.793,422 C337.895,422 324.416,415.925 314.698,406.118 C305.095,396.427 299.164,383.092 299.164,368.371 C299.164,352.91 305.707,338.978 316.174,329.191 C325.759,320.228 338.635,314.742 352.793,314.742 C366.299,314.742 378.639,319.735 388.068,327.975 C399.316,337.806 406.422,352.259 406.422,368.371 C406.422,383.21 400.395,396.641 390.656,406.351 C380.956,416.021 367.572,422 352.793,422 z

曲線を変更せずに任意の点で分割できるベジェ曲線によって定義されるため、数学的に可能であることはわかっていますが、その計算方法を見つけて新しいパスを生成するのは大変な作業のようです。ストリング。

役立つライブラリはありますか?

4

1 に答える 1

3

私が見つけたものから、最初のポイントからベジェ曲線を描くためのjavascriptのヘルプがたくさんありますが、リバースエンジニアリングには何も見つかりませんでした。ですから、私が見る限り、2つの可能なアプローチがあります。

1)

元のポイントを取得するためにカーブをリバースエンジニアリングしてから、より低い値でカーブを再作成しt_stepます。以下のリンクは、それがどのように行われるかの基本を示しています。

ベジェ曲線のリバースエンジニアリング

ベジェ曲線のリバースエンジニアリング

2)

精度がいくらか失われるかもしれませんが、3次スプライン補間を使用して各ポイント間の曲線を推定することは可能であると思います。

スプライン補間

于 2013-01-07T00:50:38.280 に答える