2012-07-14 68 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

回答