2013-04-11 84 views
0

我有4個CGPoint形成一個不規則的數字。我怎樣才能將這個數字旋轉90度並獲得新的CGPoints?旋轉CGPoints; CIVector CGAffineTransform?

FWIW,我能「假」這個時候這個數字是一個的CGRect通過交換origin.x和origin.y,以及寬度和高度。我是否需要做類似的事情(計算點之間的距離/方向)還是我可以應用於CIVector的AffineTransform?

提示和/或指針教程/指南歡迎。

可略過的項目背景:

用戶將文檔和照片的應用程序將OCR他們。由於用戶在獲取非偏斜圖像時遇到了很多麻煩,因此我允許他們圍繞文本正文創建4點圖形,並將應用程序傾斜回到矩形。攝像機圖像進來是CIImages等方面有其起源已在左下角,所以4點數字必須從UIView的匹配旋轉...

回答

0

爲了記錄在案,我用CGAffineTransforms旋轉要點:

CGAffineTransform t1 = CGAffineTransformMakeTranslation(0, cropView.frame.size.height); 
CGAffineTransform s = CGAffineTransformMakeScale(1, -1); 
CGAffineTransform r = CGAffineTransformMakeRotation(90 * M_PI/180); 
CGAffineTransform t2 = CGAffineTransformMakeTranslation(0, -cropView.frame.size.height); 

CGPoint a = CGPointMake(70, 23); 
a = CGPointApplyAffineTransform(a, t1); 
a = CGPointApplyAffineTransform(a, s); 
a = CGPointApplyAffineTransform(a, r); 
a = CGPointApplyAffineTransform(a, t2); 

& c。爲其他點。