2008-10-24 10 views
11

के बीच छेड़छाड़ बिंदु मैं बी-स्पलाइन और सीधी रेखा के बीच छेड़छाड़ की गणना करने का एक तरीका खोजने की कोशिश कर रहा हूं। अब तक Google बहुत मदद नहीं कर रहा है।एक स्पलीन और रेखा

उत्तर

6

आपका सबसे अच्छा तरीका व्यक्तिगत रेखा खंडों में अपनी स्पलीन को तोड़ना और लाइन के साथ छेड़छाड़ के लिए प्रत्येक पंक्ति खंड का परीक्षण करना हो सकता है। पट्टी एक से अधिक स्थान में रेखा को विभाजित कर सकते हैं, तो आप यह भी तय करना सकें कि आप में रुचि रखते हैं होगा

+0

मैं सहमत हूं, यह आमतौर पर अनुशंसित विधि है। यदि आप वांछित रिज़ॉल्यूशन प्राप्त करते हैं तो आपको आमतौर पर ऐसा करने में अधिक कुशलता मिलती है, जो रेखा खंडों को परिष्कृत करते हैं जहां आपको एक चौराहे मिलती है। – Kena

7

एक शुद्ध गणितीय दृष्टिकोण:।

  • पट्टी और इतने लाइन रूपांतरण कि रेखा एक्स अक्ष पर निहित है।
  • स्पलीन पर बिंदुओं की गणना करें जहां वाई = 0 (स्पलीन के क्रम पर निर्भर करता है)।
  • इन बिंदुओं को वापस अपने मूल कॉर्डिनेट सिस्टम में बदलें।

यदि आप जिस तरह से जा रहे हैं, तो मैं आवश्यक सूत्रों को काम कर सकता हूं।

+0

मुझे दृष्टिकोण पसंद है, लेकिन जब आप स्पलीन की वाई = 0 के लिए हल कैसे करते हैं? क्या स्पलीन खंडों का मूल्यांकन करने और अनुमान लगाने की कोशिश करने के अलावा कोई दूसरा तरीका है? – Herms

+0

स्पलीन के क्रम के आधार पर स्पलीन समीकरणों (कम से कम क्यूबिक स्प्लिंस तक) के मौजूदा समाधान हैं। सूत्र वास्तव में अजीब हो जाते हैं और उन्हें संख्यात्मक त्रुटियों में कम होने की गारंटी नहीं है। जैसा कि मैंने कहा: एक शुद्ध गणितीय दृष्टिकोण। –

7

सबसे कुशल एल्गोरिदम जिसे मैंने सुना है उसे बेजियर क्लिपिंग कहा जाता है।

यहां एक book chapter on curve and spline intersection (पीडीएफ) है।

+1

मैंने इस स्रोत से समाधान को सफलतापूर्वक कार्यान्वित किया है, विशेष रूप से सेक्शन 7.3 पर देख रहा है, क्योंकि बेजियर और बी स्पलीन कार्यों के लिए बहुपद रूट खोज आसान है। –