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

看板C_and_CPP作者 (morning)時間10年前 (2015/05/07 10:55), 編輯推噓1(105)
留言6則, 3人參與, 最新討論串1/2 (看更多)
開發平台(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): -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.130.248.228 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1430967343.A.6D9.html

05/07 11:34, , 1F
最簡單有效的方法: 要求使用者按順序輸入
05/07 11:34, 1F

05/07 11:38, , 2F
不然你要自己做一筆畫還要一邊檢查凹多邊形
05/07 11:38, 2F

05/07 11:41, , 3F
搜尋 convex hull 之類的吧
05/07 11:41, 3F

05/07 14:17, , 4F
同意一樓. 原PO的例子未給順序,其實可畫出好幾種凹多邊形.
05/07 14:17, 4F

05/07 16:31, , 5F
聲明不按順序輸入不保證結果 亂輸是他的事情
05/07 16:31, 5F

05/07 16:32, , 6F
簡單公式本來適用範圍就有限
05/07 16:32, 6F
文章代碼(AID): #1LIjGlRP (C_and_CPP)
文章代碼(AID): #1LIjGlRP (C_and_CPP)