我在 Illustrator 中创建了一个特殊的椭圆,我需要在我的应用程序中绘制它。我使用 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。现在我想更改代码,以便无论大小如何,椭圆都会被拉伸以适合我的视图边界。端点很明显,我可以使用视图的高度和宽度来确定这一点。但是,我无法理解如何确定控制点。我是否将这些视为视图高度/视图宽度的比例?不确定我是否完全理解贝塞尔路径的数学运算,因此当视图水平或垂直拉伸时,我可以保持相同数量的曲线。