[問題] 請益如何記錄不規則的座標值呢

作者: morningjis (morning)   2015-05-07 10:55:41
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++/VC#
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
目前已知的是
應該是記錄邊緣座標值即可
有個小問題就是
好像需要順時針的去記錄座標值
那想請教的就是
怎麼記錄不規則形的座標呢
像是
(2,1) (3,1)
(1,2) (3,2)
(2,3) (4,3)
(2,4) (3,4) (4,4)
謝謝!
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版)
有找到程式碼,如下
float area_of_polygon(int vcount,float x[],float y[])
{
int i;
float s;
if (vcount <3) return 0;
s=y[0]*(x[vcount-1]-x[1]);
for (i=1;i <vcount;i++)
s+=y[i]*(x[(i-1)]-x[(i+1)%vcount]);
return s/2;
}
補充說明(Supplement):
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-05-07 11:34:00
最簡單有效的方法: 要求使用者按順序輸入不然你要自己做一筆畫還要一邊檢查凹多邊形
作者: johnjohnlin (嗯?)   2015-05-07 11:41:00
搜尋 convex hull 之類的吧
作者: yvb   2015-05-07 14:17:00
同意一樓. 原PO的例子未給順序,其實可畫出好幾種凹多邊形.
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-05-07 16:31:00
聲明不按順序輸入不保證結果 亂輸是他的事情簡單公式本來適用範圍就有限

Links booklink

Contact Us: admin [ a t ] ucptt.com