[问题] 请益如何记录不规则的座标值呢

楼主: 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