イラストレーターで特別な楕円を作成しました。これは、アプリで描画する必要があります。私は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です。次に、コードを変更して、サイズに関係なく、楕円がビューの境界に合うように引き伸ばされるようにします。エンドポイントは明らかです。ビューの高さと幅を使用してこれを決定できます。ただし、コントロールポイントを決定する方法を理解するのに苦労しています。これらをビューの高さ/ビューの幅の比率として使用しますか?ビューが水平方向または垂直方向に伸びるときに実装したのと同じ量の曲線を維持できるように、ベジェパスの数学を完全に理解しているかどうかはわかりません。