2012-08-22 34 views
6

tôi đã xây dựng một Path2D đại diện cho một hình khép kín bao gồm các đường thẳng:phát hiện con trỏ chuột qua một Path2D

enter image description here

Tôi muốn để có thể phát hiện khi chuột được nhấp và con trỏ chuột là gần (trong một vài pixel) đường dẫn. Sử dụng phương pháp contains không hoạt động vì thuật toán xử lý hình dạng không được khép kín như đóng kín (tức là bằng cách vẽ một đường thẳng giữa điểm bắt đầu và điểm kết thúc).

Có ai biết cơ chế khác để đạt được điều này không?

Trả lời

9
  1. Tạo một BasicStroke (độ rộng kiểm soát pixel khoảng cách khoan nhượng của bạn)
  2. Đừng vẽ với nó, chỉ sử dụng phương pháp createStrokedShape của nó để tạo ra một hình dạng thứ hai từ hình dạng của bạn. Hình dạng thứ hai này mô tả đường viền của hình dạng sẽ được lấp đầy nếu bạn vẽ hình dạng đầu tiên của mình với BasicStroke.
  3. Sử dụng chứa phương pháp hình dạng thứ hai này

Từ Stroke.createStrokedShape tài liệu API:

Trả về một Shape phác thảo mà bao quanh khu vực đó nên được sơn khi Shape được vuốt theo các quy tắc được xác định bởi đối tượng thực hiện giao diện Stroke.

+0

Tuyệt vời! - Cám ơn vì cái này. Thật không may tôi chỉ cần xây dựng một thói quen để tổng hợp một khu vực từ nhiều hình chữ nhật mỏng nhưng bây giờ đã quản lý để thay thế 20-30 dòng mã với: cachedPathBoundary = new BasicStroke (PATH_BOUNDARY_THICKNESS) .createStrokedShape (đường dẫn); – Adamski

Các vấn đề liên quan