代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
多边形范围点判定算法
作者:
泓锦
/ 发布于
2017/5/22
/
556
判断一个二维坐标点是否在一个多边形范围框内,首先给出范围框各顶点的坐标(按顺时针方向给出),分别放到两个数组中再比较大小范围从而判定点是否在多边形返回框中
public class RangePoint { double[] x_points; double[] y_points; public RangePoint(){} public RangePoint(double[] x_points,double[] y_points) { this.x_points = x_points; this.y_points = y_points; } public boolean RangeMatch(double x, double y) { int j = x_points.length - 1; boolean odd_nodes = false; for (int i = 0; i < x_points.length; i++){ if (((y_points[i] < y && y_points[j] >= y) || (y_points[j] < y && y_points[i] >= y)) && (x_points[i] <= x || x_points[j] <= x)) { odd_nodes ^= (x_points[i] + (y - y_points[i]) / (y_points[j] - y_points[i]) * (x_points[j] - x_points[i]) < x); } j = i; } if (odd_nodes==true) { return true; } return false; } public static void main(String[] args) { double[] x_points = {0, 0, 2, 2 }; double[] y_points = {0, 1.8, 2, 0 }; double x = 1.9; double y = 1.8; RangePoint rp = new RangePoint(x_points,y_points); if (rp.RangeMatch(x, y)) { System.out.println("This Range include Point:" + x +","+ y); } } } 好吧,这个东西有啥用呢?? 看到如下测试代码你可能会觉得有用了,这个是判断某个经纬度坐标是否在给定的范围区域内,下面是故宫顶点的经纬度(可以通过ditu.google.cn点击查看到具体经纬度的值) public static void main(String[] args) { double[] x_points = {39.922886, 39.923264, 39.913275, 39.912929 }; double[] y_points = {116.391517, 116.40199, 116.402505, 116.392034 }; double x = 39.922804; double y = 116.391581; RangePoint rp = new RangePoint(x_points,y_points); if (rp.RangeMatch(x, y)) { System.out.println("This Range include Point:" + x +","+ y); } }
试试其它关键字
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
泓锦
贡献的其它代码
(
11
)
.
从 FTP 服务器下载文件
.
将系统进程按内存占用大小排列显示出来
.
加固系统的一些配置
.
函数将人民币数字转换成大写形式
.
通过sqoop增量传送oracle数据到hive
.
多边形范围点判定算法
.
jquery异步请求返回json数据类型
.
兼容FF,IE,Chrome的js离开或刷新页面检测
.
jQuery小技巧-获得鼠标指针XY值
.
显示百分比进度条
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3