2012-07-14 69 views
0

我创建在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); 

enter image description here

的这一比例大小的椭圆形的直径为515.98。现在我想更改代码,以便椭圆将被拉伸以适应我的视图边界,而不管它的大小。终点很明显,我可以使用视图的高度和宽度来确定这一点。但是,我很难理解如何确定控制点。我是否将这些视为视图高度/视图宽度的比例?不知道我很明白的贝塞尔曲线路径的数学,所以我可以保持曲线我实现了作为视图水平或veritcally绵延的量相同。

+1

您是否尝试过使用'CGContextScaleCTM()'来缩放整个背景?我相信这样可以让你保留所有的绘图;您只需传递您假设的宽度/高度与视图实际具有的宽度/高度的比例。 – 2012-07-14 08:09:42

+0

你知道它是否可以延长mutablePath吗? @KevinGrant – 2012-07-14 09:01:07

+0

“我是否将这些视为视图高度/视图宽度的比例?”那么,如果你只是尝试一下会发生什么? (提示:这应该只是罚款。) – 2012-07-14 16:32:34

回答