vb 给定16个点,确定外围点连成的图形

给定16个点,将它们外围的点有序的连接组成一个图形,然后随便再给个点,判断该点是否在图形内求该算法的代码!谢谢~~提供如下图做参考,16个红色点外围点已连接(实际上16个... 给定16个点,将它们外围的点有序的连接组成一个图形,然后随便再给个点,判断该点是否在图形内
求该算法的代码! 谢谢~~
提供如下图做参考,16个红色点外围点已连接(实际上16个红色点由4个黄色点加减误差的来),难点在于如何确定外围的点,求大侠们帮忙!
展开
 我来答
zx001z7d53
2012-09-26 · TA获得超过2万个赞
知道大有可为答主
回答量:2.4万
采纳率:52%
帮助的人:5646万
展开全部
Public Declare Function PtInRegion Lib "gdi32" Alias "PtInRegion" (ByVal hRgn As Long, ByVal x As Long, ByVal y As Long) As Long
用这个函数可以判断一个点是否在一个区域内
你需要先知道外围有那几个点,画成多边形,得到该区域的hRgn
追问
这种方法的关键就在于如何确定外围的那几个点,不知有什么好的思路?
追答
用递归或遍历,先画一个三角形,用上述函数判断第四个点是不是在区域内,不在的话就画四边形,以此类推,在区域内就摈弃。
江鱼11
2012-10-02 · 超过15用户采纳过TA的回答
知道答主
回答量:72
采纳率:0%
帮助的人:39.7万
展开全部
依次取3个点,判断下是否在这3个点内,如果每次都不在就在外面
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
money0_04c351c2
2012-09-26 · TA获得超过4142个赞
知道大有可为答主
回答量:5505
采纳率:49%
帮助的人:1607万
展开全部
由于任何一个N变形都可以拆分为N-2个三角形,所以这题目实际上就是一个判断某点是否在三角形内部的问题。
判断一个点是否在三角形内的方法很多,举两个例子:
1、判断该点与三角形任意两点组成的三个新三角形面积之和是否与原始三角形面积相等。
2、以三角形的三条边为分界,判断新点是否与剩余的一点在同一侧。若三边都是同侧则在内部。
做好了这个函数基本上任务完成一半了,下面就是逐个点的判断、取舍,最终从16个点中保留下来的就是多边形外缘。问题也就实际上解决了。

我这人比较懒,代码就不写了。谁写了代码就把分数给他。
追问
谢谢你提供的思路难点起始就在如何确定外围的点,不知有没有办法?
追答
在以有多边形里任取一顶点作为原点(假定为O点),然后每两个点与O点组成一个三角形(O12,O23,O34……),判断新点(P)是否在该三角形内,若是则记1,否则记0。
所得和若为偶数则P点在多边形外,奇数在内。
看起来似乎挺复杂,但都是简单计算,电脑做速度飞快的。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式