通过Path2D检测鼠标指针

Ada*_*ski 6 java shape java-2d path-2d

我构造了一个Path2D代表由直线组成的未闭合形状:

在此输入图像描述

我想能够检测何时单击鼠标并且鼠标指针接近路径(在几个像素内).使用该contains方法不起作用,因为算法将未闭合的形状视为隐式闭合(即通过在起点和终点之间绘制一条直线).

有谁知道实现这个的另一种机制?

lba*_*scs 9

  1. 创建一个BasicStroke(宽度控制您的像素距离容差)
  2. 不要使用它绘制,只使用其createStrokedShape方法从您的形状创建第二个形状.第二个形状描述了如果使用BasicStroke绘制第一个形状,将填充的形状轮廓.
  3. 使用此第二个形状的contains方法

从Stroke.createStrokedShape API文档:

返回一个轮廓Shape,它根据实现Stroke接口的对象定义的规则,在描绘Shape时应该绘制的区域.