c#竖直射线法判断点是否再多边形里面

C#实现竖直射线法判断点在凸多边形内
本文介绍了使用C#和Winform开发环境中,利用竖直射线法判断点是否位于凸多边形内的原理和步骤。通过对点和直线的关系分析,确定点相对于直线的位置,然后遍历多边形的每条边计算交点,根据交点个数的奇偶性来确定点的内外位置。

一、开发环境:

          VS2017   C#winform

二、竖直射线法大致介绍

          通过被判断的点P(x0,y0)引出竖直的上下两条射线,如果两条射线与多变形的交点都为奇数个,那么这个点再多边形里面,反之,这个点在多边形外面,反之,则在多边形里面(前提:针对凸多边形,但是如果在端点处细讨论,那么同样可以适用于凹多边形,这里只介绍凸多边形)

三、如何判断竖直向下的射线是否与某一条边会有交点。

       1、先介绍一些点和直线的关系     

        1)对于p(x0,y0)判断它在直线L:ax+by+c=0(a必须大于0)的上侧还是下侧,我们知道如果

        ax0+by0+c>0(a>0),点p在直线L的下侧;

        ax0+by0+c=0  (a>0),点p在直线L上

        ax0+by0+c<0  (a>0),点p在直线L上侧。

     如下图:

       2)对于P(x0,y0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值