5

ベジェ曲線について2つの質問があり、それらを使用して円の一部を近似します。

  1. 単位円弧(1,0)->(cos(a)、sin(a))(0 <a <pi / 2)が与えられた場合、ベジェ曲線の制御点p1を見つけるために、この弧の適切な近似が得られます。 、p2は、要件B(1/3)=(cos(a / 3)、sin(a / 3))およびB(2/3)=(cos(2a / 3)、sin( 2a / 3))。(言い換えると、ベジェ曲線が円弧内の2つの等間隔の点を通過する必要があります)。

  2. 楕円弧で円弧を回転させるアフィン変換Aがある場合、変換された制御点Ap0、Ap1、Ap2、Ap3は、楕円弧の適切なベジェ近似を定義しますか?

もちろん、p0とp3は、曲線の始点と終点です:(1,0)と(cos(a)、sin(a))。

ありがとうございました

4

2 に答える 2

4

これは、3次ベジェ曲線としての楕円弧の一般的な解決策です。

エラーは、開始角度と終了角度の違いに最も依存します。角度差を60°に制限することで、私は良い成功を収めました。つまり、60°(またはその一部)ごとに個別の立方体セグメントを作成し、それらをチェーンします。

于 2011-04-08T00:14:27.647 に答える
2

あなたの質問は基本的に「楕円の半円/弧のこれらの良い近似ですか」と尋ねます。

Wolfram Alphaなどのグラフ作成ユーティリティで曲線の計算B_y(a) - sin(a)(もちろん、方程式の両端(-1,0)が同じ値になるようにパラメータ化)を試して、分散の大きさを確認することをお勧めします。それはあなたの目的に合っていません。aB(a)

より正確で非視覚的な答えが必要な場合は、計算することができます

Integral (from 0 to K) [B_y(a) - sin(a)]^2 da / 2

ここで、Kは、aパラメーター化された両方の曲線がで終わる場所の値です(-1,0)

この積分は、標準偏差の測定値に(ある程度)関連/比例しており、数値解析として役立ちます。希望する精度の範囲内であれば、問題ありません。

円から楕円へのアフィン変換について言及する2番目の質問では、変換が本質的に線形である場合、元のエラーに比例するエラーが発生します。そうでない場合は、変換のヤコビ行列式を使用して、エラーがどのように変化するかを確認できます。

私はまた、著者がかなりセクシーな近似を見つけた半円-ベジェ近似の素晴らしい分析を見つけました:

ベジェ半円

によって与えられた:

xValueInset=直径*0.05
yValueOffset=半径*4.0/ 3.0

P0 =(0,0)
P1 =(xValueInset、yValueOffset)
P2 =(直径-xValueInset、yValueOffset)
P3 =(直径、0)

ここで、P1とP2はコントロールポイントです。これは半円に近似していることに注意してください。

B(a) = [ (d/2)*cos(a)+d/2 , (d/2)*sin(a) ]
于 2010-06-23T09:14:41.837 に答える