7

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

在此处输入图像描述

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

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

4

1 回答 1

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

来自 Stroke.createStrokedShape API 文档:

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

于 2012-08-22T09:03:05.610 回答