2011-04-17 55 views
0

想象一下,我想在給定的矩形中繪製自定義視圖(例如100 x 100像素)。我的自定義視圖的內容可能大於100 x 100。相反,有些內容未繪製,我想繪製100 x 100區域內的所有內容。例如,通常位於(125,140)的點現在將在點(25,40)處繪製。CGContext - 「模」繪圖?

有沒有辦法做到這一點,而不必(主要)修改繪圖代碼?請記住,我也繪製更復雜的形狀,如貝塞爾路徑。

回答

1

也許你可以通過CGContextScaleCTM(...)來擴展你的繪畫空間。

e.x.

CGFloat sx, sy; 
sx = self.frame.size.width/desiredWidth; 
sy = self.frame.size.height/desiredHeight; 

CGContextScaleCTM(context, sx, sy); 

編輯:

由於科多以下建議,你可能會尋找CGContextTranslateCTM(...)這將抵消你的上下文座標一些X/Y值空間。

+1

我猜ryyst是尋找CGContextTranslateCTM,它可以實現100像素的偏移量(而不是縮放輸出)。 – Codo 2011-04-17 18:23:37

+0

@科多是的,我認爲你是對的。更新了答案。謝謝。 – Sam 2011-04-17 18:35:08

+0

@Codo,Sam:我的例子的意思是,點(25,40)和(125,140)和(25,1240)將被繪製在同一個點上。這就是我稱之爲「模數」繪圖的原因。 – ryyst 2011-04-17 20:03:07