मुझे एक लाइन पर एक बिंदु कैसे मिलेगा?


11

मेरे दो अंक हैं (A, B) और d की लंबाई। मुझे बिंदु C कैसे मिल सकता है?

उदाहरण

जवाबों:


26

Vसे एक वेक्टर की गणना Aकरें B, और इसे सामान्य करें।

V = (B - A) / |B - A|

चूंकि वेक्टर सामान्यीकृत है, इसकी लंबाई एक होगी, और यह Bसापेक्ष की दिशा को इंगित करेगा A। आप तो वेक्टर पैमाने से तो dआप से विस्थापन होगा Aकरने के लिएC

V' = d * V

जिसे आप केवल Aउपज में जोड़ सकते हैं C:

C = V' + A

btw: किसी ने मुझे एक किताब की सिफारिश कर सकता है जहाँ मैं सामान के बारे में जान सकते हैं? :)
ईमपी

3D गणित प्राइमर एक अच्छा है: amazon.com/Primer-Graphics-Development-Wordware-Library/dp/…
रिकी एएच

यह एक पढ़ा नहीं है, लेकिन मुझे बताया गया है कि यह भी बहुत अच्छा है amazon.com/Mathematics-Programming-Computer-Graphics-Second/dp/…
रिकी एएच

1
इस प्रश्न को देखें: gamedev.stackexchange.com/questions/1210/…

btw यह किरण चौराहे एल्गोरिदम में अंतिम युगल चरण हैं: आप यह पता लगाते हैं
jhocking

1

यदि आपका डी लंबाई के बजाय एक अनुपात है, उदाहरण के लिए 0.5 ए और बी से समान दूरी पर रखता है, तो आप निम्न कार्य कर सकते हैं और एक सामान्यीकरण से बच सकते हैं:

C = A * (1 - ratio) + B * ratio
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.