2010-05-21 21 views
8

wpf में कुछ 3 डी सामान करना- यह देखने के लिए एक सरल परीक्षण का उपयोग करना चाहते हैं कि सब कुछ काम कर रहा है (वक्र पर जाने से पहले)।दो बिंदुओं के बीच एक बिंदु के निर्देशांक ढूँढना?

मूल प्रश्न दो बिंदु x1, y1, z1 और x2, y2, z2 दिया गया है मैंने बिंदुओं के बीच की दूरी की गणना की है। लेकिन किसी अन्य बिंदु (x3, y3, z3) के निर्देशांक कैसे ढूंढें जो उस रेखा पर कुछ दूरी पर स्थित हैं?

आईई। यदि मेरी लाइन 100,0,0 और 50,0,0 के बीच 100 लंबी है तो रेखा के साथ 100 * 0.1 पर बिंदु के निर्देशांक क्या हैं?

मुझे लगता है कि यह एक सरल सूत्र है, लेकिन मैं यह अभी तक नहीं मिला है ....

उत्तर

12

पता था कि 0 और 1 के बीच प्रत्येक पी के लिए तो यह आपके रेखा खंड पर एक बिंदु दे देंगे:

(x1, y1, z1) + p * ((x2, y2, z2) - (x1, y1, z1)) 
+0

+1 संपादित करें देखें। उदाहरण में प्रश्नकर्ता ने पी = 0.1 को दिया है और यह अच्छी तरह से अनुवाद करता है। अच्छा काम इसे आसान रखते हुए। –

+1

यह भी बहुत उपयोगी था! तो मेरे प्रत्येक बिंदु के लिए हल करने के लिए मैंने किया: x3 = x1 + p (x2-x1)। वाई और जेड के लिए दोहराएं। – Nicros

6

यह गणित के साथ क्या करना है, लेकिन ठीक। P और Q दो बिंदुओं और X को जिस बिंदु को आप ढूंढ रहे हैं उसे दें।

P + r(Q - P) = X 

आर एक कारक इंगित करता है।

यदि 0 < r < 1: बिंदु x दो बिंदुओं के बीच की रेखा पर होगा।

यही है!

संपादित करें:

पी से एक निर्धारित दूरी घ (p1/p2/पी 3) पर एक बिंदु खोजने के लिए:

d²/euclidian_square_distance(P,Q) = r 

समीकरण में आर सम्मिलित ऊपर उल्लेख किया है और आप अपनी बात करनी होगी ! :)

पुनश्च: Btw: P-Q = (Px - Qx, Py - Qy, Pz - Qz) ... मैं शर्त लगा सकता आप alread यह :)

+0

यह बहुत उपयोगी था! – Nicros

+0

@ सिमॉन समीकरण नहीं होना चाहिए एक्स = पी + आर (क्यू-पी), अब आर = 1 डालने पर, हमें 2 पी-क्यू मिल रहा है, जो सही नहीं है। – kkk

+0

@kkk धन्यवाद। – Simon

1

t 0 से करने के लिए 1. अलग-अलग हैं निम्नलिखित:

(x3, y3, z3) = (1-t)*(x1, y1, z1) + t*(x2, y2, z2)

टी = जब 0 आप पहली बात समझ। जब टी = 1 आपको दूसरा मिलता है।

इस विधि को linear interpolation कहा जाता है।

+0

क्या आप अपने उत्तर का उपयोग करके, मध्यवर्ती समन्वय बिंदुओं को कैसे ढूंढ सकते हैं इसका वर्णन कर सकते हैं। –

0

एक 3 डी में बिंदुओं को जोड़ने लाइन समीकरण द्वारा दिया जाता है:

(एक्स - x 1)/(x2 - x1) = (y - y1)/(y2 - y1) = (जेड - z1)/(z2 - z1)

आपके पास x1, y1, z1, x2, y2, z2 के मान हैं। यह आपको लाइन के लिए समीकरण देगा।

एक और समीकरण होगा

((एक्स-x 1)^2 + (y-y1)^2 + (जेड-z1)^2)^(1/2) = दूरी

अंक के मूल्य प्राप्त करने के लिए 2 समीकरणों को हल करें।

संबंधित मुद्दे