java 判断点和圆是否有交点_Java 判断点是否在特定区域内

本文介绍了如何使用 Java 的 `GeneralPath` 和 `Arc2D` 类判断点是否在多边形或圆内。通过创建 `GeneralPath` 对象并调用 `contains` 方法来检测点是否在绘制的多边形内,同时展示了使用 `Arc2D` 的不同构造方法来创建圆,并检查点是否在圆内。注意,传入的点集需要按顺序排列。文章还提到了射线法作为另一种判断点在特定区域内的方法。
摘要由CSDN通过智能技术生成

废话不多说,直接进入正题:

判断某点是否在特定区域内,使用 java.awt.geom.GeneralPath 类中的 contains 方法;

该类常用的构造方法:

GeneralPath ( ) 构造一个新的单精度空 GeneralPath 对象

GeneralPath(Shape s) 根据任意 Shape 对象构造一个新 GeneralPath 对象

关于 Shape 接口 想了解的自行查找API,我这里使用 Point2D.Double 实现类来绘制多边形。

具体的代码,这是绘制多边形的:

private boolean contains(Point2D.Double point,

Listpolygon) {

if (null == polygon || polygon.isEmpty()) { // 不存在区域坐标点,无法绘制区域

return false;

} else if (polygon.size() < 3) { // 区域坐标点数小于3, 无法绘制区域

return false;

} else {

GeneralPath p = new GeneralPath();

// 获取坐标区域的第一个点

Point2D.Double first = polygon.get(0);

// 绘图 GeneralPath 路径的开始

p.moveTo(first.x, first.y);

// 第一个点已经绘制完成,remove掉

polygon.remove(0);

for (Point2D.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值