- 浏览: 1041137 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (501)
- dwr (6)
- javascript (84)
- oracle (66)
- jsp/servlet (18)
- ant (3)
- 基础知识 (12)
- EXT (10)
- My SQL (10)
- java (71)
- spring (37)
- 学习的对象 (2)
- Linux (24)
- 面试 (1)
- HTML/CSS (11)
- tomcat (11)
- 收藏夹 (2)
- Power Designer (2)
- struts.xml配置文件 (1)
- sturts2 (3)
- myeclipse (8)
- eclipse (7)
- Maven (34)
- SVN (3)
- SAP JCO (2)
- JBOSS (11)
- webservice (8)
- word (1)
- 敏捷开发 (1)
- sybase (4)
- Nexus (3)
- EhCache (3)
- log4j (3)
- Cookie (4)
- Session (4)
- CXF (7)
- AXIS (2)
- SSO (1)
- LDAP (1)
- velocity (2)
- Jquery (5)
- redis (2)
- http (4)
- dojo (1)
- Linux资源监控软件mnon的安装与运用 (1)
- notepad++ (1)
- EA (1)
- UML (1)
- JasperReports (1)
- 权限 (0)
- freemarker (4)
- Spring MVC (1)
- JMS (1)
- activeMQ (1)
- hession (3)
- 安全 (1)
- ibatis (2)
- log (1)
- nginx (1)
最新评论
-
winhbb:
我刚好遇到了一个问题(在可以依赖注入的场合有效):有两个模块A ...
解决Maven项目相互依赖/循环依赖/双向依赖的问题 -
nanjiwubing123:
long3ok 写道你好 XmlOutputFormatter ...
用XStream转换复杂XML -
zhoujianboy:
另外一个方法实现eclipse tomcat 热部署:http ...
eclipse下实现maven项目在tomcat容器热部署方法 -
long3ok:
你好 XmlOutputFormatter 请问这个类是在什么 ...
用XStream转换复杂XML -
ganbo:
总结的好,文章给力。
解决Maven项目相互依赖/循环依赖/双向依赖的问题
import java.util.ArrayList; public class Test { public static void main(String[] args) { double px = 113.0253; double py = 23.98049; ArrayList<Double> polygonXA = new ArrayList<Double>(); ArrayList<Double> polygonYA = new ArrayList<Double>(); polygonXA.add(113.0253); polygonXA.add(113.4121); polygonXA.add(113.37109); polygonXA.add(113.02148); // 113.18359,23.8496 // 113.0253,23.98049 113.4121,23.9687 113.37109,2.73828 // 113.02148,23.7539C polygonYA.add(23.98049); polygonYA.add(23.9687); polygonYA.add(23.73828); polygonYA.add(23.7539); Test test = new Test(); System.out.println(test.isPointInPolygon(px, py, polygonXA, polygonYA)); } public boolean isPointInPolygon(double px, double py, ArrayList<Double> polygonXA, ArrayList<Double> polygonYA) { boolean isInside = false; double ESP = 1e-9; int count = 0; double linePoint1x; double linePoint1y; double linePoint2x = 180; double linePoint2y; linePoint1x = px; linePoint1y = py; linePoint2y = py; for (int i = 0; i < polygonXA.size() - 1; i++) { double cx1 = polygonXA.get(i); double cy1 = polygonYA.get(i); double cx2 = polygonXA.get(i + 1); double cy2 = polygonYA.get(i + 1); if (isPointOnLine(px, py, cx1, cy1, cx2, cy2)) { return true; } if (Math.abs(cy2 - cy1) < ESP) { continue; } if (isPointOnLine(cx1, cy1, linePoint1x, linePoint1y, linePoint2x, linePoint2y)) { if (cy1 > cy2) count++; } else if (isPointOnLine(cx2, cy2, linePoint1x, linePoint1y, linePoint2x, linePoint2y)) { if (cy2 > cy1) count++; } else if (isIntersect(cx1, cy1, cx2, cy2, linePoint1x, linePoint1y, linePoint2x, linePoint2y)) { count++; } } if (count % 2 == 1) { isInside = true; } return isInside; } public double Multiply(double px0, double py0, double px1, double py1, double px2, double py2) { return ((px1 - px0) * (py2 - py0) - (px2 - px0) * (py1 - py0)); } public boolean isPointOnLine(double px0, double py0, double px1, double py1, double px2, double py2) { boolean flag = false; double ESP = 1e-9; if ((Math.abs(Multiply(px0, py0, px1, py1, px2, py2)) < ESP) && ((px0 - px1) * (px0 - px2) <= 0) && ((py0 - py1) * (py0 - py2) <= 0)) { flag = true; } return flag; } public boolean isIntersect(double px1, double py1, double px2, double py2, double px3, double py3, double px4, double py4) { boolean flag = false; double d = (px2 - px1) * (py4 - py3) - (py2 - py1) * (px4 - px3); if (d != 0) { double r = ((py1 - py3) * (px4 - px3) - (px1 - px3) * (py4 - py3)) / d; double s = ((py1 - py3) * (px2 - px1) - (px1 - px3) * (py2 - py1)) / d; if ((r >= 0) && (r <= 1) && (s >= 0) && (s <= 1)) { flag = true; } } return flag; } }
评论
3 楼
hb214
2014-08-06
这个算法有问题,我测试了 不在范围内的 也是返回的true,
2 楼
123003473
2012-06-30
weizaiC 写道
算法有问题呀 明明不在范围内的 也返回true
只支持凸多边形,凹多边形好像是有问题。。。
1 楼
weizaiC
2012-06-25
算法有问题呀 明明不在范围内的 也返回true
发表评论
-
不同版本(2.3,2.4,2.5)的Servlet web.xml 头信息
2014-01-21 17:17 795Servlet 2.3 <?xml version=&q ... -
Tomcat j_security_check安全策略
2013-08-22 15:06 14611. 内存域:类名,MemoryRealm;在初始化阶段,从X ... -
jsp freemarker velocity 比较
2013-08-01 11:13 952在java领域,表现层技术主要有三种:jsp、freemark ... -
jsp el 和xss
2013-04-16 14:44 3257jsp 2.0中的 ${todo.description}是不 ... -
jsp framework
2013-04-04 11:40 932freemarker 优点: 1、不能编写java代码,可 ... -
response.isCommitted()
2012-12-24 15:37 10136HelloServlet类的service()方法最后调用Pr ... -
jsessionid的困扰
2012-11-24 20:44 1674[size=x-large]问题:向某银行发送支付请求时,如果 ... -
Tomcat的Session设置
2012-11-24 00:37 11151、为单个WEB设置SESSION 在WEB.XML中添加 ... -
从form的enctype属性到Content-Type再到request.getInputStream
2012-09-03 16:42 1183还是一个异常引发的故事: 需要实现一个手机客户端行为分析的需 ... -
servlet多线程
2012-07-17 15:49 868一,servlet容器如何同时处理多个请求。 Servlet采 ... -
注解@PostConstruct与@PreDestroy
2012-07-11 18:13 0从Java EE 5规范开始,Servlet中增加了两个影响S ... -
HTTP Post 文件的一些细节【转载】
2012-03-09 18:32 1546JSP/SERVLET上载的难点 1、支持任意格式、任意 ... -
使用javarebel 实现tomcat 动态加载类---热部署 [转载]
2011-10-10 18:26 1193在项目中开发都是使用tomcat,当类修改之后,新加field ... -
设置WebLogic启动内存
2011-03-23 15:24 1630我们经常在使用WebLoigc部署应用程序后,发现程序运 ... -
EL 表达式 访问集合和String的 的内置方法(比如:size ,contains, indexOf ,endWith...)
2011-03-07 19:14 1458称呼 Functions 标签库为标签库,倒不如称呼其为函数库 ... -
EL表达式
2011-03-07 19:13 985the JavaServer Pages Standard T ... -
Unknown constant tag 115 in class file jsp_servlet/_finance/__caiwuzhuangkuangou
2010-12-08 12:09 1519Error 500--Internal Server Erro ... -
jsp
2010-11-19 16:33 1419index.jsp:13:22: "E:\BEA\u ...
相关推荐
java 判断点在多边形内 java 判断点在多边形内 java 判断点在多边形内 java 判断点在多边形内 java 判断点在多边形内 Java GIS 多边形 Java点多边形
主要为大家详细介绍了java判断某个点是否在所画多边形或圆形内的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
判断某点是否在任意多边形内两种算法的比较.pdf
java判断百度地图的点是否在多边形区域内,这是完整的demo
判断点是否在多边形内 #include #include #include #define max(a,b) ((a>b)?a:b) #define min(a,b) ((a)?a:b) using namespace std; const double INFINITY = 1e10; const double ESP = 1e-5; const int MAX_N ...
该工具类可以判断一个点是否在多边形内,据此可以判断,一个人是否在某个区域内,将多边形坐标作为一个字符串数组传入,再传入点的坐标,即可进行判断
判断某点是否在任意多边形C语言源码,使用射线法设计,包含设计说明
算法判断点在多边形内
判断点和多边形的位置,判断点和多边形的位置,判断点和多边形的位置
判断点在多边形内 VB 计算机图形学作业 CG
用射线法判断点是否在多边形中,编译环境VC6.0,鼠标左键实现绘制多边形,右键进行判断。
判断点是否在一个多边形区域内, 支持凸多边形与凹多边形(算法源于QT的QPolygonF)
先输入多边形的顶点数,左击即可判断点击的点是否在多边形内
这是一个水平/垂直交叉点数判别法判断点是否在凹(凸)多边形内部(适用于任意多边形包括凹凸边形) 注意到如果从P作水平向左的射线的话,如果P在多边形内部,那么这条射线与多边形的交点必为奇数,如果P在多边形...
易语言判断点在多边形内外源码,判断点在多边形内外,pointjs
判断点是否在多边形内源代码 C++语言程序
判断一个坐标点是否在多边形区域范围内。可直接使用。 用来做地图经纬度 判断一个点是否在一个多边形范围内很合适 代码简洁 不到100行代码
判断点是否多边形内 基本思想是利用射线法,计算射线与多边形各边的交点,如果是偶数,则点在多边形外,否则在多边形内。还会考虑一些特殊情况,如点在多边形顶点上,点在多边形边上等特殊情况。
判断点在多边形内,射线和多边形算出奇数个交点,在多边形内
点在多边形的边上 前面我们讲到,射线法的主要思路就是计算射线穿越多边形边界的次数。那么对于点在多边形的边上这种特殊情况,射线出发的这一次,是否应该算作穿越呢?