通过Path2D检测鼠标指针

时间:2012-08-22 08:01:33

标签: java shape java-2d path-2d

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

enter image description here

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

有没有人知道实现这个目标的另一种机制?

1 个答案:

答案 0 :(得分:9)

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

      

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