JAVA,如何判断点是否在面内
首先面也是由一系列的点组成,比如,一个正方形。我们可以把它当成四个坐标点然后直线连接而成。
java.awt.geom.GeneralPath为我们实现的这个画线的功能。
下面用一个简单的例子来画一个面
/**
* 将经纬度点集合转换为GeneralPath对象
*
* @param points 点集合(有序)
*
* @return GeneralPath对象
*/
public static GeneralPath genGeneralPath(ArrayList<Point2D.Double> points) {GeneralPath path = new GeneralPath();if (points.size() < 3) {return null;}path.moveTo((float) points.get(0).getX(), (float) points.get(0).getY());for (Iterator<Point2D.Double> it = points.iterator(); it.hasNext();) {Point2D.Double point = (Point2D.Double) it.next();path.lineTo((float) point.getX(), (float) point.getY());}path.closePath();return path;
}
其中。points是一系列坐标点的集合。我们可以用
Point2D.Double point= new Point2D.Double(x,y);生成新的坐标点
moveTo方法:通过移动到指定的坐标在路径中添加点
直接用
lineTo:通过绘制一条从当前坐标到新指定坐标的直线在路径中添加点。
这样每加一个点。我们就用上一个点到这个点画条直线。这样就成功的画好了一个面了。
然后,我们判读点是否在该面中
GeneralPath类的contains方法就可以了。真的非常方便
JAVA,如何判断点是否在面内相关推荐
- java实现判断给定点是否在指定区域内的判断
直接上代码 /*主要算法,判断给定坐标是否在指定区域内 * 参数:入参经度列,纬度列,经度,纬度:出参true-false * step1:取4个最值,先判断点与最值的位置关系 ...
- 判断一点是否在多边形内(附Java实现代码)
引射线法:从目标点出发引一条射线,看这条射线和多边形所有边的交点数射线法 时间复杂度:O(n) 适用范围:任意多边形 个人认为是非常不错的算法(不需考虑精度误差和多边形点给出的顺序),可以作为第一选择 ...
- java 时间判断大小_java判断时间大小
//构造日期格式yyyy-MM-NN SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); Date d ...
- JAVA判断当前时间在时间范围内
我们在日常开发的时候肯定有围绕时间选择的一些功能, 今天给大家分享一个java如何判断当前时间是否在所选择时间范围内的一个小demo public static void main(String[] ...
- 射线法判断点是否在多边形内-JAVA
1.定义点 public class Point {private BigDecimal x;private BigDecimal y;public Point() {};@Overridepubli ...
- java 简化判断_简化Java内存分析
java 简化判断 作为一名典型的Java开发人员,除了遵循关闭连接,流等典型的最佳实践外,我从未监视过应用程序的内存使用情况.最近,我们在JBoss服务器中遇到了一些问题,不得不深入研究内存管理Ja ...
- Java File文件流读取文件夹内的文件并替换文件内容
Java File文件流读取文件夹内的文件并替换文件内容 一.前言 二.代码 三.运行结果 一.前言 批量读取文件夹内的文件,并替换各个文件的内容 二.代码 新建一个普通 Java 项目就可以,创建文 ...
- java 计算 点是否在电子围栏范围内
java计算坐标点是否在电子围栏范围内 ps:注意坐标系转换 /*** 地球半径*/private static double EARTH_RADIUS = 6378138.0;private sta ...
- 项目5 判断点是否在圆内
项目5 判断点是否在圆内 请编写一个Java应用程序,判断给定的平面点坐标(x1,y1)是否在一个指定半径的圆内.程序先请求输入圆的半径,再请求输入点的x坐标和y坐标,然后给出判断点是否在圆内并打印输 ...
最新文章
- gdb调试多进程和多线程命令 .
- 《UNIXLinux程序设计教程》一第2章-2.0 标准输入输出
- 【Opencv实战】这个印章“神器”够牛,节省了时间提高了效率,厉害~(附完整源码)
- 设计模式(三):观察者模式与发布/订阅模式区别
- 多文档版的的正则表达式工具
- pass information between XXX.Aspx and XXX.Aspx.cs
- 网络名称 转换 网络地址_网络地址转换| 计算机网络
- lz4压缩算法--速度之王
- Efficient Inference in Fully Connected CRFs with Gaussian Edge Potential
- 打开多个Excel2010文档在同一个窗口中显示问题如何解决
- 基于SSM的商旅系统
- Blender快捷键设置
- CodeSmith简单示例
- Vue2.0 响应式原理 通俗易懂
- Unity UGUI屏幕自适应
- 张俊 中国科技大学 计算机,张俊-中国科学院大学-UCAS
- 泰坦之路手机版怎么登陆服务器未响应,泰坦之旅一直登入不进去怎么办
- yyyy/mm/dd变成yyyy-mm-dd
- android studio改字体,在Android Studio中更改字体样式的不同方法有哪些
- lij IDEA快速编写代码