点在多边形内 java_判断点在多边形内部的方法(Java版)
/**
* 检查多边形是否包含了某点~
* @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);
}
点在多边形内 java_判断点在多边形内部的方法(Java版)相关推荐
- 多边形碰撞检测(判断点在多边形内)
点与规则的矩形或者等边.等腰三角形等的碰撞检测很简单,本文主要是介绍"点与多边不规则图形的碰撞检测". 如图,这个多边形已经相当复杂,包含凸和凹,该如何解决呢? 结论:使用交点数判 ...
- 几何基础之点在多边形内的判断
1.判断点在三角形的内外 即可判定点P在内. 三角形面积计算公式:. 2.判断点在多边形的内外 方法一:扫描法 以p点做一条射线,让其与多边形一个顶点相交,再判断是否与多边形上点共线当然这个点不可能是 ...
- php 判断点在多边形内,PHP判断点是否在多边形区域内外
PHP判断点是否在多边形区域内外: 根据数学知识的射线法,射线与几何多边形相交的点的个数为奇数则是在几何内部: 偶数在外部:/** * Created by PhpStorm. * function: ...
- 点在多边形内的判断(射线法)
这个博客写得非常好 转载于:https://www.cnblogs.com/justPassBy/p/5205310.html
- 链表的基本操作 java_详细实现单链表的基本操作【Java版】
节点类 static Node head=new Node(); static class Node{ int data; Node next; public Node() {//无参构造方法,默认d ...
- 蚂蚁爬绳java_腾讯面试题——蚂蚁爬行(Java版)
/** * 蚂蚁类,用于记录蚂蚁的状态及控制蚂蚁行为 */ public class Ant { /** * 蚂蚁爬行方向枚举值 */ public interface Direction { /** ...
- 判断一个数是否是素数(Java版)
目录 素数的定义 求解素数 素数判定法1: 遍历从2到n-1的所有数字,判断是否有可以被n整除的数,如果没有,则为素数. 优化法2: 判定的范围改为[2 -,n/2].当 i>n/2 时,则判定 ...
- C语言实验——判断素数(循环结构)(Java版)
Problem Description 从键盘上输入任意一个正整数,然后判断该数是否为素数. 如果是素数则输出"This is a prime." 否则输出"This i ...
- 百度编辑器图片上传 java_百度编辑器粘贴图片自动上传到服务器(Java版)
Chrome+IE默认支持粘贴剪切板中的图片,但是我要发布的文章存在word里面,图片多达数十张,我总不能一张一张复制吧? Chrome高版本提供了可以将单张图片转换在BASE64字符串的功能.但是无 ...
最新文章
- [转] JavaScript仿淘宝智能浮动
- OKR 落地需要相关工具的辅助吗?
- R语言构建生存分析(survival analysis)模型示例
- 在Kaggle上赢得大数据竞赛的技巧和窍门
- php数组的值传递给另一个数组,如何把一个固定数组的值传递给另外一个数组
- opencv 把3通道图像转成单通道_小强学Python+OpenCV之-1.4.3图像(矩阵)加减运算
- RFID 射频 RFID工作流程 自动识别技术 工作频段 短距离无线通信技术
- 循环序列模型 —— 1.8 带有神经网络的梯度消失
- 漫话:什么是架构师?
- 面向对象:寻寻觅觅,诚邀你一起来解开这道迷题
- JDBC操作MYSQL数据库
- 记一次失败的项目经历
- matlab 怎麼卸載乾淨,matlab set gca用法
- 华为s5700交换机IP地址与MAC地址绑定
- setBackground()和setImageBitmap()看完就哦了
- OCR识别缺点_常用的OCR文字识别软件有哪些_软件动态论坛
- 什么副业能让你的收入增长十倍?
- pikachu靶场通关之暴力破解
- 介绍汽车美容预约小程序app开发
- SpringBoot 实现邮件发送功能
热门文章
- 云计算与 Cloud Native | 数人云CEO王璞@KVM分享实录
- STL 源代码分析 算法 stl_algo.h -- includes
- 项目中js文件修改后浏览器不能及时更新的解决办法
- 冲刺CCNA2.0(200-120)认证考试TK视频讲解
- 项目实现思路(不断更新)
- Microsoft Data Access Components(MDAC) 结构以及一些连接SQL数据库的架构基础
- 15.分布式文档系统-document id的手动指定与自动生成两种方式解析
- 【免费毕设】基于jsp的新闻发布系统(论文)
- mysql二进制日志开启方法_mysql中如何开启binlog?开启二进制日志文件?binary log?
- android api文档_【粉丝投稿】无需额外注解的 SpringBoot API文档生成工具