मैं यह जांचना चाहता हूं कि कोई रेखा (या रेखा का कोई भी बिंदु) एक आयत के भीतर है या आयत को छेड़छाड़ करता है या नहीं।यह जांचने के लिए कि क्या कोई रेखा का कोई बिंदु (या भाग) अंदर है या आयत को छूता है
मेरे पास एक लाइन के प्रारंभ और समापन बिंदु के रूप में (x0, y0) और (x1, y1) है। इसके अलावा, (कुल्हाड़ी, ay) और (bx, द्वारा) एक आयत
उदाहरण के लिए के ऊपरी-बाएं और निचले दाएं अंक के रूप में,
____________
| |
---|----- | Result: true
| |
|____________|
/
_/__________
|/ |
/ | Result: true
/| |
|____________|
____________
| |
| -------- | Result: true
| |
|____________| ---------- Result: false
किसी को भी ऐसा करने के तरीके का सुझाव कर सकते हैं? मैं नहीं जानना चाहता कि कौन सा बिंदु यह है कि, मैं सिर्फ यह जानना चाहता हूं कि वहां है या नहीं।
धन्यवाद मदद
स्पष्ट ASCII कला के लिए +1 :) – alex
"कोहेन सुथरलैंड" के लिए एक त्वरित Google आपको सही दिशा में शुरू करना चाहिए। –
प्रत्येक किनारे पर विचार करें क्योंकि यह स्वयं का लाइन सेगमेंट है। फिर यह लाइन-सेगमेंट चौराहे को निर्धारित करने का मामला है * और * वह मामला जहां यह पूरी तरह से निहित है। बेशक, यह सिर्फ एक त्वरित अवलोकन है और इस प्रकार के चौराहे को हल करने का * आदर्श * तरीका नहीं है (यह भी वास्तव में एक आम अंतर है - अगर यह एक मूल प्रश्न है तो मैं वास्तव में आश्चर्यचकित हूं ;-) –