文档章节

判断点在多边形内部

逆风飞扬11
 逆风飞扬11
发布于 2016/04/01 17:31
字数 158
阅读 5
收藏 0

/**
  * 检查多边形是否包含了某点~
  * @param point
  * @return
  */
 public boolean containsPoint(BYPoint point) {
     int verticesCount = vertices.size();
     int nCross = 0;
     for (int i = 0; i < verticesCount; ++ i) {
         BYPoint p1 = vertices.get(i);
         BYPoint p2 = vertices.get((i + 1) % verticesCount);
    
         // 求解 y=p.y 与 p1 p2 的交点
         if ( p1.getY() == p2.getY() ) {   // p1p2 与 y=p0.y平行
             continue;
         }
         if ( point.getY() < Math.min(p1.getY(), p2.getY()) ) { // 交点在p1p2延长线上
             continue;
         }
         if ( point.getY() >= Math.max(p1.getY(), p2.getY()) ) { // 交点在p1p2延长线上
             continue;
         }
         // 求交点的 X 坐标
         float x = (point.getY() - p1.getY()) * (p2.getX() - p1.getX())
            / (p2.getY() - p1.getY()) + p1.getX();
         if ( x > point.getX() ) { // 只统计单边交点
             nCross++;
         }
     }
  // 单边交点为偶数,点在多边形之外
     return (nCross%2==1);
 }

本文转载自:

逆风飞扬11
粉丝 0
博文 2
码字总数 0
作品 0
丰台
私信 提问
判断点是否在多边形内部(Ray-casting Algorithm)

判断一个点是否在多边形内部的典型方法: (1)面积和判别法:判断目标点与多边形的每条边组成的三角形面积和是否等于该多边形,相等则在多边形内部。 (2)夹角和判别法:判断目标点与所有边...

vocaloid01
2018/04/19
0
0
【转】2019春季阿里笔试算法题——判断一个点是否在多边形内部

题目描述: 自己任意输入几个点构造一个多边形,然后再随机输入一个点,判断该点是否在多变形里面,如果不在,那么该点离多变形的最短距离是多少。 思路一: 下面是几个比较基本的方法: (1...

Jinlong_Xu
07/17
0
0
【计算几何】点定位(线段,三角形,多边形)

判断是否点在线段上 1.满足向量 AC×AB == 0,使C点满足在AB的直线上 2.满足C在AB构成的矩形内,使C点排除在AB的延长线和反向延长线上 注意:考虑竖直和水平的情况,横坐标和纵坐标都要判断。...

qq_33199236
2017/02/25
0
0
判断点是否在多边形内

射线法(奇偶法) 只适用于简单多边形(没有自相交点)。从P点开始的射线穿过多边形边界次数,多边形的边界将多边形分为内部和外部。如果是偶数在多边形外部,否则奇数在多边形内部。如下图所...

乙知
2016/11/07
1K
0
如何判断一个点是否在多边形内部还是外部

射线法。 即从待测点向多边形任意方向发出一条射线,若射线与多边形的交点为奇数,则该点在多边形内部;反之该点在多边形外部。

子麒
2012/02/20
349
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx学习笔记

中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。 是连接两个独立应用程序或独立系统的软件。 web请求通过中间件可以直接调用操作系统,也可以经过中间件把请求分发到多...

码农实战
今天
5
0
Spring Security 实战干货:玩转自定义登录

1. 前言 前面的关于 Spring Security 相关的文章只是一个预热。为了接下来更好的实战,如果你错过了请从 Spring Security 实战系列 开始。安全访问的第一步就是认证(Authentication),认证...

码农小胖哥
今天
12
0
JAVA 实现雪花算法生成唯一订单号工具类

import lombok.SneakyThrows;import lombok.extern.slf4j.Slf4j;import java.util.Calendar;/** * Default distributed primary key generator. * * <p> * Use snowflake......

huangkejie
昨天
12
0
PhotoShop 色调:RGB/CMYK 颜色模式

一·、 RGB : 三原色:红绿蓝 1.通道:通道中的红绿蓝通道分别对应的是红绿蓝三种原色(RGB)的显示范围 1.差值模式能模拟三种原色叠加之后的效果 2.添加-颜色曲线:调整图像RGB颜色----R色增强...

东方墨天
昨天
11
1
将博客搬至CSDN

将博客搬至CSDN

算法与编程之美
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部