0

イラストレーターで特別な楕円を作成しました。これは、アプリで描画する必要があります。私はQwarkeeを使用して、主に以下を使用してコアグラフィックコードに変換しました。

void CGPathAddCurveToPoint (CGMutablePathRef path, const CGAffineTransform *m, CGFloat cp1x, CGFloat cp1y, CGFloat cp2x, CGFloat cp2y, CGFloat x, CGFloat y);

コードは次のとおりです。

CGMutablePathRef pPath_0 = CGPathCreateMutable();
CGPathMoveToPoint(pPath_0, NULL, 515.98,258.24);
CGPathAddCurveToPoint(pPath_0, NULL, 515.98,435.61,415.54,515.98,258.24,515.98);
CGPathAddCurveToPoint(pPath_0, NULL, 100.94,515.98,0.50,435.61,0.50,258.24);
CGPathAddCurveToPoint(pPath_0, NULL, 0.50,80.86,100.94,0.50,258.24,0.50);
CGPathAddCurveToPoint(pPath_0, NULL, 415.54,0.50,515.98,80.86,515.98,258.24);
CGPathCloseSubpath(pPath_0);

ここに画像の説明を入力してください

この比例したサイズの楕円の直径は515.98です。次に、コードを変更して、サイズに関係なく、楕円がビューの境界に合うように引き伸ばされるようにします。エンドポイントは明らかです。ビューの高さと幅を使用してこれを決定できます。ただし、コントロールポイントを決定する方法を理解するのに苦労しています。これらをビューの高さ/ビューの幅の比率として使用しますか?ビューが水平方向または垂直方向に伸びるときに実装したのと同じ量の曲線を維持できるように、ベジェパスの数学を完全に理解しているかどうかはわかりません。

4

1 に答える 1

0

私はこれを物理フォーラムにクロス投稿し、素敵な人が私に素晴らしい解決策を与えてくれました:

http://www.physicsforums.com/showthread.php?s=aff26efd9c911d2a8c29118f550b86fb&p=3996775#post3996775

于 2012-07-27T22:03:15.873 に答える