求取多邊形矩形包圍框的中心點方法

2021-09-19 16:04:35 字數 1879 閱讀 3784

今天下午做了一下遊戲功能的擴充,不料又落馬了,記錄一下~

/** * 求取多邊形的中心位置(該方法是最原始版,之前因為用的少,所以沒有發覺到邏輯上存在錯誤)~ * added by bruce yang on 2012.09.02.15.30~ * 實踐證明,這個方法的邏輯是錯誤的,汲取這個教訓~ */+(b2vec2) getpolycenterlogicwrong0:(bypolygon*)polygon     return b2vec2(xsum / iverticescount, ysum / iverticescount);}/** * added on 2012.09.02.12.46~ * 發現上面方法的錯誤以後,我做了乙個修正,發現錯誤依然存在,甚至一度讓我深陷泥潭~ */+(b2vec2) getpolycenterlogicwrong1:(bypolygon*)polygon  else

if(item.x > fmaxx)                 if(item.y < fminy) else

if(item.y > fmaxy)     }    return b2vec2((fminx + fmaxx) / 2.0f, (fminy + fmaxy) / 2.0f);}/** * added on 2012.09.02.12.46~ * 備註:求取多邊形矩形包圍框的中心點的終極版方法~ * 讓我迷茫了許久啊,數學沒學好腦筋就是轉不靈光,哎... */+(b2vec2) getpolycenterfixed:(bypolygon*)polygon             if(item.x > fmaxx)             if(item.y < fminy)             if(item.y > fmaxy)         } else     }        return b2vec2((fminx + fmaxx) / 2.0f, (fminy + fmaxy) / 2.0f);}

今天下午做了一下遊戲功能的擴充,不料又落馬了,記錄一下~

/** * 求取多邊形的中心位置(該方法是最原始版,之前因為用的少,所以沒有發覺到邏輯上存在錯誤)~ * added by bruce yang on 2012.09.02.15.30~ * 實踐證明,這個方法的邏輯是錯誤的,汲取這個教訓~ */+(b2vec2) getpolycenterlogicwrong0:(bypolygon*)polygon     return b2vec2(xsum / iverticescount, ysum / iverticescount);}/** * added on 2012.09.02.12.46~ * 發現上面方法的錯誤以後,我做了乙個修正,發現錯誤依然存在,甚至一度讓我深陷泥潭~ */+(b2vec2) getpolycenterlogicwrong1:(bypolygon*)polygon  else

if(item.x > fmaxx)                 if(item.y < fminy) else

if(item.y > fmaxy)     }    return b2vec2((fminx + fmaxx) / 2.0f, (fminy + fmaxy) / 2.0f);}/** * added on 2012.09.02.12.46~ * 備註:求取多邊形矩形包圍框的中心點的終極版方法~ * 讓我迷茫了許久啊,數學沒學好腦筋就是轉不靈光,哎... */+(b2vec2) getpolycenterfixed:(bypolygon*)polygon             if(item.x > fmaxx)             if(item.y < fminy)             if(item.y > fmaxy)         } else     }        return b2vec2((fminx + fmaxx) / 2.0f, (fminy + fmaxy) / 2.0f);}

求多邊形包圍區域

求多邊形包圍區域 已知單元格中,黑色部分為封閉邊緣,如何求出綠色部分也在包圍圈之內?有了上面的概念之後,只需要選定乙個點作為起點並沿邊緣走一圈再回到起點,通過判斷向左側拐和向右拐的次數,若左拐次數大於右拐次數則為左側包圍,反之為右側包圍。在給定的包圍順序下判定了左 右 側包圍,遍可獲得包圍區域 以上...

多邊形和虛線矩形框

簡潔版的虛線矩形框 int xmin math.min x1,x2 x3 xmin,xmax math.max x1,x2 ymin math.min y1,y2 ymax math.max y1,y2 for xmin xmax xmin 10 for yming.drawline x3,ymin...

OpenCV之使用多邊形將輪廓包圍

在實際的應用中,常常需要將檢測到的輪廓用多邊形來表示,主要涉及到以下函式。此函式計算並返回指定點集最外面的矩形邊界。rect boundingrect inputarray points 函式的輸入是二維的點集,可以是std vector或mat型別。此函式對於給定的2d點集,尋找可旋轉的最小面積的...