- 浏览: 1064688 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (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 843Servlet 2.3 <?xml version=&q ... -
Tomcat j_security_check安全策略
2013-08-22 15:06 15001. 内存域:类名,MemoryRealm;在初始化阶段,从X ... -
jsp freemarker velocity 比较
2013-08-01 11:13 996在java领域,表现层技术主要有三种:jsp、freemark ... -
jsp el 和xss
2013-04-16 14:44 3310jsp 2.0中的 ${todo.description}是不 ... -
jsp framework
2013-04-04 11:40 1008freemarker 优点: 1、不能编写java代码,可 ... -
response.isCommitted()
2012-12-24 15:37 10231HelloServlet类的service()方法最后调用Pr ... -
jsessionid的困扰
2012-11-24 20:44 1717[size=x-large]问题:向某银行发送支付请求时,如果 ... -
Tomcat的Session设置
2012-11-24 00:37 11741、为单个WEB设置SESSION 在WEB.XML中添加 ... -
从form的enctype属性到Content-Type再到request.getInputStream
2012-09-03 16:42 1210还是一个异常引发的故事: 需要实现一个手机客户端行为分析的需 ... -
servlet多线程
2012-07-17 15:49 906一,servlet容器如何同时处理多个请求。 Servlet采 ... -
注解@PostConstruct与@PreDestroy
2012-07-11 18:13 0从Java EE 5规范开始,Servlet中增加了两个影响S ... -
HTTP Post 文件的一些细节【转载】
2012-03-09 18:32 1587JSP/SERVLET上载的难点 1、支持任意格式、任意 ... -
使用javarebel 实现tomcat 动态加载类---热部署 [转载]
2011-10-10 18:26 1241在项目中开发都是使用tomcat,当类修改之后,新加field ... -
设置WebLogic启动内存
2011-03-23 15:24 1681我们经常在使用WebLoigc部署应用程序后,发现程序运 ... -
EL 表达式 访问集合和String的 的内置方法(比如:size ,contains, indexOf ,endWith...)
2011-03-07 19:14 1499称呼 Functions 标签库为标签库,倒不如称呼其为函数库 ... -
EL表达式
2011-03-07 19:13 1020the JavaServer Pages Standard T ... -
Unknown constant tag 115 in class file jsp_servlet/_finance/__caiwuzhuangkuangou
2010-12-08 12:09 1559Error 500--Internal Server Erro ... -
jsp
2010-11-19 16:33 1487index.jsp:13:22: "E:\BEA\u ...
相关推荐
根据给定的信息,本文将详细解释如何在Java中实现判断一个点是否位于一个多边形内的算法。该算法基于射线交叉法(Ray Casting Algorithm),这是一种常见的几何计算方法,用于确定一个给定点是否属于一个给定的...
在Java编程中,判断一个点是否位于多边形区域内是一个常见的地理空间运算问题。这个问题在地图应用、GIS(地理信息系统)以及游戏开发等领域有广泛的应用。以下是对这个知识点的详细阐述: 1. **坐标系统与投影**:...
4. **判断点是否在任意多边形内(java) .pdf 和 .txt**:这些文档提供了Java语言实现的点在多边形内的判断算法,可能包括代码示例和详细的步骤解释,例如通过遍历多边形边并计算角度差来判断。 5. **一种判断点在...
在矢量多边形区域中,一个坐标点的位置是否在区域内 算法: C#代码,适用于任意多边形(凹凸多边形),但是没有考虑实际误差范围的情况(应用在实际问题解决中,接近区域一定范围是可以忽略的,这个误差范围考虑后算法的...
知识点:判断点是否在多边形内部的算法及其在C#、Java、JavaScript中的实现 在计算机图形学、地理信息系统(GIS)以及游戏开发等领域,判断一个点是否位于一个多边形内部是一个常见的需求。该需求涉及到空间数据...
此外,为了提高效率,还可以通过预处理多边形,如构建包围盒(BoundingBox)或使用空间细分技术,先判断点是否在多边形的大致区域内,再进行精确的判断。 在编程实现时,可以使用各种编程语言,如Python、C++、Java...
本篇将详细介绍如何在Android环境中判断一个点是否在多边形内部,重点讨论“点在三角形内”的算法,因为大多数多边形可以分解为多个三角形。 首先,我们要理解“点在多边形内”的定义。通常,我们采用“射线交叉法...
在二维空间中,一个凸多边形是由一系列点(顶点)连接形成的闭合图形,其中任意两点之间的连线都在多边形内部。如果从多边形外部向内射入的任何直线都会与多边形的边界交于连续的两点或不相交,那么这个多边形就是凸...
在本文档中,我们将深入探讨WPF(Windows Presentation Foundation)中的2D图形学知识,特别是如何判断一个点是否位于任意几何形状内部。WPF是.NET Framework的一个重要组件,它为开发者提供了丰富的用户界面(UI)...
在计算机图形学、地理信息系统(GIS)以及游戏开发等领域中,判断一个点是否位于一个多边形内部是一项基础而重要的操作。这项技术不仅被用于地图应用中的路径规划、区域选择,还在游戏开发中用于碰撞检测、视线遮挡...
范例10-6-1判断某点是否在凸边形的轮廓内 356 范例10-7-1计算轮廓的面积与周长 357 范例10-8-1使用匹配模板找出某物 359 范例10-8-2使用非匹配模板找出某物 363 范例10-8-3 修正使用匹配与非匹配模板找出某物 364 ...
【多边形算法】是计算机图形学和GIS...总之,多边形算法在GIS和计算机图形学中具有广泛的应用,而判断点是否在多边形内的问题是一个基础且重要的问题,可以通过多种方法实现,选择哪种方法取决于具体的需求和性能要求。
例如,在游戏中判断玩家角色(通常可简化为一个点)是否触碰到障碍物(多边形表示)等场景。 #### 二、算法原理 点与多边形碰撞检测的核心思想是确定一个点是否位于一个多边形内部或边界上。本文将详细介绍一种...
在二维空间中,凸多边形是由一系列直线段连接的点形成的封闭图形,其中任意两点之间的线段都完全位于多边形内部或边界上。与之相对的是凹多边形,其内部存在一些区域无法通过直线段连接两点。 最优三角划分的目标是...
2. 定义3D多边形类,存储顶点列表,并实现判断点是否在多边形内的方法。该方法中,遍历多边形的所有边,检查测试点与每条边构成的三角形是否面向多边形。如果是,则增加交点计数。 3. 使用向量叉乘判断三角形面向。...
这种方法简单且效率较高,适用于判断点是否位于任意多边形内部,包括凸多边形和凹多边形。 在实际生产环境中,这样的功能可能被用于地图应用的各种场景,比如用户位置的判断、兴趣点搜索范围的确定等。通过这个项目...
与点在三角形内的测试类似,点在多边形内的测试用于判断一个给定点是否位于由多个顶点构成的多边形内部。这个问题通常采用射线交叉法来解决,即从待测点发射一条射线,统计该射线与多边形边界的交点数量,以此判断点...
然后,通过将任意经纬度点转换为Point对象,我们可以通过点在面内的包含关系判断,来确定该点是否在这个区域内。这个过程涉及到空间关系的计算,通常使用几何对象的contains()或intersects()等方法来实现。 为了...
HelloNativeTest.java 测试本地化是否成功的类文件 instanceVar.java 定义一个实例成员变量 invokeByObject.java 对象实参传递示例程序 invokeByValue.java 传值调用示例程序 invokeMethod.java 同一个类中调用...