我有一套CGPoint
s代表一個形狀有點像一個顛倒'T'形狀,現在我想轉換成CGRect
適合內部的形狀,所以創建一個CGRect
,其中包含我只是循環的整個形狀,並找出最左邊的最低x
和y
和最高的x
和y
右下角,這是偉大的,但留下圖像以外的白色區域,我怎麼能弄清楚最大的矩形沒有白色區域,所以最終的形狀更像是一個'|'形狀?我的代碼到目前爲止:多CGPoints CGREct
CGPoint topLeft = CGPointZero;
CGPoint bottomRight = CGPointZero;
for(NSValue *value in points) {
CGPoint point = [value CGPointValue];
if(topLeft.x == 0 || topLeft.x > point.x) shapeRect.x = point.x;
if(topLeft.y == 0 || topLeft.y > point.y) shapeRect.y = point.y;
if(bottomRight.x < point.x) bottomRight.x = point.x;
if(bottomRight.y < point.y) bottomRight.y = point.y;
}
CGRect shapeRect = CGRectMake(topLeft.x, topLeft.y, bottomRight.x - topLeft.x, bottomRight.y - topLeft.y);
編輯:我畫了一些照片,以顯示我想要實現的東西。灰色區域顯示CGRect
。
這裏的圖像形狀,我有座標的形狀各點:
Image Hosted by ImageShack.us http://img684.imageshack.us/img684/121/crop1.png
這裏就是我上面的代碼產生:
Image Hosted by ImageShack.us http://img26.imageshack.us/img26/2521/crop2j.png
這裏就是我想實現:
Image Hosted by ImageShack.us http://img689.imageshack.us/img689/5499/crop3.png
形狀中的線是垂直的還是水平的? – joerick 2012-01-09 22:50:44
另外,底部的形狀對於同樣的問題是否也是同樣有效的答案? (這也將是一個適合此形狀的矩形。) – 2012-01-09 23:46:17