2012-08-22 49 views
6

मैं एक Path2D कि सीधी रेखाओं से मिलकर एक खुली हुई आकार का प्रतिनिधित्व करता है का निर्माण किया है:माउस सूचक का पता लगाने

enter image description here

मैं जब माउस क्लिक किया जाता है पता लगाने के लिए सक्षम होना चाहते हैं और माउस सूचक है पथ के करीब (कुछ पिक्सल के भीतर) के पास। contains विधि का उपयोग करना काम नहीं करता है क्योंकि एल्गोरिदम अनजान रूप से बंद आकार के रूप में व्यवहार करता है (यानी प्रारंभ और अंत बिंदुओं के बीच सीधी रेखा खींचकर)।

क्या कोई इसे प्राप्त करने के लिए किसी अन्य तंत्र के बारे में जानता है?

उत्तर

9
  1. एक BasicStroke (चौड़ाई अपने पिक्सेल दूरी की सहनशीलता को नियंत्रित करता है)
  2. , इसके साथ आकर्षित केवल अपने आकार से कोई दूसरा आकार बनाने के लिए अपनी createStrokedShape विधि का प्रयोग न करें बनाएँ। यह दूसरा आकार आकृति की रूपरेखा का वर्णन करता है जो भर जाएगा यदि आप बेसिकस्ट्रोक के साथ अपना पहला आकार आकर्षित करेंगे।
  3. उपयोग इस दूसरे आकार की विधि शामिल

Stroke.createStrokedShape API दस्तावेज़ से:

एक रूपरेखा आकार जो क्षेत्र है कि चित्रित किया जाना चाहिए जब आकार के अनुसार stroked है encloses रिटर्न स्ट्रोक इंटरफ़ेस को लागू करने वाली ऑब्जेक्ट द्वारा परिभाषित नियम।

+0

बहुत बढ़िया! - इसके लिए धन्यवाद। दुर्भाग्यवश मैंने कई पतली आयताकारों से एक क्षेत्र को मिश्रित करने के लिए एक दिनचर्या बनाई थी, लेकिन अब कोड के 20-30 लाइनों को प्रतिस्थापित करने में कामयाब रहा है: कैश्डपाथबाउंडरी = नया बेसिकस्ट्रोक (PATH_BOUNDARY_THICKNESS) .createStrokedShape (पथ); – Adamski