0

UIBezierpath を描画して 3 点を接続するにはどうすればよいでしょうか。式/アルゴリズムがあるに違いないことは知っていますが、検索しても見つかりません。誰かが 3 点を通るベジエ曲線を描くためのコードを手伝ってくれませんか? コードなしで数式を指定すると、それも役立ちます。わかりやすいように、start = 始点、cp1 = 1 番目のコントロール ポイント、cp2 = 2 番目のコントロール ポイント、end = 終点です。

前もって感謝します

4

1 に答える 1

1

残念ながら、これは最も簡単なことではないので、可能であれば、方程式を解くコードを探してみたいと思います (信頼してください)。

そうは言っても、あなたがする必要があるのは、あなたのポイントに基づいて方程式を導き出すことです. 使用する可能性が最も高い方程式は 2 次であるため、y = ax^2 + bx + c となります。3 つのポイントを使用して、それぞれの x と y を式に代入します。次に、関数をローカライズして、a、b、および c から値を見つけることができます。これらのポイントを見つけると、3 つのポイントの完全な方程式が得られます。

これは、純粋に数学的な形式で自分で解決する方法ですが、物事を単純化するために使用できる内部メソッドがいくつかあるようです (私のバックグラウンドは物理学なので、ドキュメンテーションを検索する前に銃を飛ばして数学に直行しました)。 . UIBezierPathClass Referenceでは、またはのいずれ- (void)addCurveToPoint:(CGPoint)endPoint controlPoint1:(CGPoint)controlPoint1 controlPoint2:(CGPoint)controlPoint2かを使用- (void)addQuadCurveToPoint:(CGPoint)endPoint controlPoint:(CGPoint)controlPointして目的の効果を得ることができるはずです。後者は、上で説明した方程式を解く方法です。

于 2011-10-09T22:36:28.563 に答える