क्या रेखाएँ प्रतिच्छेद करती हैं: समतल पर रेखा खंडों का प्रतिच्छेदन। दो खंडों के प्रतिच्छेदन बिंदु का निर्धारण क्या खंड प्रतिच्छेद करते हैं

रेखाओं के प्रतिच्छेदन बिंदु

हमें उनके गुणांकों द्वारा दी गई दो सीधी रेखाएँ और दी जाती हैं। उनके प्रतिच्छेदन बिंदु को खोजना आवश्यक है, या यह पता लगाना है कि रेखाएँ समानांतर हैं।

फैसला

यदि दो रेखाएँ समानांतर नहीं हैं, तो वे प्रतिच्छेद करती हैं। चौराहे के बिंदु को खोजने के लिए, दो समीकरणों की एक प्रणाली बनाने और इसे हल करने के लिए पर्याप्त है:

क्रैमर के सूत्र का उपयोग करते हुए, हम तुरंत सिस्टम का समाधान ढूंढते हैं, जो वांछित होगा चौराहे की जगह:



यदि भाजक शून्य है, अर्थात

तब समाधान की प्रणाली में कोई (प्रत्यक्ष समानांतर हैंऔर मेल नहीं खाते) या असीम रूप से कई हैं (प्रत्यक्ष मिलान). यदि इन दो मामलों के बीच अंतर करना आवश्यक है, तो यह जांचना आवश्यक है कि रेखाओं के गुणांक गुणांक के समान आनुपातिकता के गुणांक के साथ आनुपातिक हैं और , जिसके लिए यह दो निर्धारकों की गणना करने के लिए पर्याप्त है, यदि वे दोनों समान हैं शून्य करने के लिए, तो रेखाएँ संपाती हैं:

कार्यान्वयन

संरचना पीटी (डबल एक्स, वाई;); संरचना रेखा (डबल ए, बी, सी;); स्थिर डबल ईपीएस = 1e-9; डबल डेट (डबल ए, डबल बी, डबल सी, डबल डी) (रिटर्न ए * डी - बी * सी;) बूल इंटरसेक्ट (लाइन एम, लाइन एन, पीटी और रेस) (डबल जेडएन = डीईटी (एमए, एमबी, एनए , n.b); अगर (एब्स (zn)< EPS)returnfalse; res.x=- det (m.c, m.b, n.c, n.b)/ zn; res.y=- det (m.a, m.c, n.a, n.c)/ zn;returntrue;} bool parallel (line m, line n){returnabs(det (m.a, m.b, n.a, n.b))< EPS;} bool equivalent (line m, line n){returnabs(det (m.a, m.b, n.a, n.b))< EPS &&abs(det (m.a, m.c, n.a, n.c))< EPS &&abs(det (m.b, m.c, n.b, n.c))< EPS;}

श्रृंखला से सबक " ज्यामितीय एल्गोरिदम»

नमस्कार प्रिय पाठक।

युक्ति 1: दो रेखाओं के प्रतिच्छेदन बिंदु के निर्देशांक कैसे ज्ञात करें

आइए तीन और नए कार्य लिखें।

लाइन्सक्रॉस () फ़ंक्शन यह निर्धारित करेगा कि क्या एक दूसरे को काटनाचाहे दो खंड. इसमें वेक्टर उत्पादों का उपयोग करके खंडों की सापेक्ष स्थिति निर्धारित की जाती है। वेक्टर उत्पादों की गणना करने के लिए, आइए एक फ़ंक्शन लिखें - VektorMulti ()।

RealLess () फ़ंक्शन का उपयोग तुलना ऑपरेशन को लागू करने के लिए किया जाएगा।<” (строго меньше) для вещественных чисел.

कार्य 1। उनके निर्देशांक द्वारा दो खंड दिए गए हैं। एक प्रोग्राम लिखें जो निर्धारित करता है क्या ये खंड प्रतिच्छेद करते हैं?प्रतिच्छेदन बिंदु को खोजे बिना।

फैसला
. दूसरा डॉट्स द्वारा दिया गया है।



एक खंड और अंक और पर विचार करें।

बिंदु रेखा के बाईं ओर स्थित है, जिसके लिए वेक्टर उत्पाद > 0, क्योंकि सदिश धनात्मक उन्मुख होते हैं।

बिंदु रेखा के दाईं ओर स्थित है, इसके लिए वेक्टर उत्पाद < 0, так как векторы отрицательно ориентированы.

बिंदुओं के लिए तथा , रेखा के विपरीत पक्षों पर झूठ बोलने के लिए, यह स्थिति पर्याप्त है< 0 (векторные произведения имели противоположные знаки).

खंड और अंक और के लिए समान तर्क दिया जा सकता है।

तो यदि , फिर खंड प्रतिच्छेद करते हैं।

इस स्थिति की जाँच करने के लिए, LinesCross() फ़ंक्शन का उपयोग किया जाता है, और वेक्टर उत्पादों की गणना करने के लिए, VektorMulti() फ़ंक्शन का उपयोग किया जाता है।

ax, ay पहले सदिश के निर्देशांक हैं,

bx, by दूसरे वेक्टर के निर्देशांक हैं।

कार्यक्रम ज्यामिति4; (क्या 2 खंड प्रतिच्छेद करते हैं?) Const _Eps: Real=1e-4; (गणना सटीकता) var X1, y1, x2, y2, x3, y3, x4, y4: वास्तविक; var v1,v2,v3,v4: real; function RealLess(Const a, b: Real): बूलियन; (सख्ती से कम) RealLess शुरू करें: = b-a> _Eps अंत; (RealLess) function VektorMulti(ax,ay,bx,by:real): वास्तविक; (ax,ay - a निर्देशांक bx, by - b निर्देशांक) start vektormulti:= ax*by-bx*ay; अंत; फ़ंक्शन लाइन्सक्रॉस (X1, y1, x2, y2, x3, y3, x4, y4: वास्तविक): बूलियन; (क्या खंड प्रतिच्छेद करते हैं?) start v1:=vektormulti(x4-x3,y4-y3,x1-x3,y1-y3); v2:=vectormulti(x4-x3,y4-y3,x2-x3,y2-y3); v3:=vectormulti(x2-x1,y2-y1,x3-x1,y3-y1); v4:=vectormulti(x2-x1,y2-y1,x4-x1,y4-y1); अगर रियललेस(v1*v2.0) और रियललेस(v3*v4.0) (v1v2)<0 и v3v4<0, отрезки пересекаются} then LinesCross:= true else LinesCross:= false end; {LinesCross}begin {main} writeln(‘Введите координаты отрезков: x1,y1,x2,y2,x3,y3,x4,y4’); readln(x1,y1,x2,y2,x3,y3,x4,y4); if LinesCross(x1,y1,x2,y2,x3,y3,x4,y4) then writeln (‘Да’) else writeln (‘Нет’) end.

कार्यक्रम निष्पादन परिणाम:

खंडों के निर्देशांक दर्ज करें: -1 1 2 2.52 2 1 -1 3
हां।

हमने एक प्रोग्राम लिखा है जो यह निर्धारित करता है कि उनके निर्देशांक द्वारा दिए गए खंड प्रतिच्छेद करते हैं या नहीं।

अगले पाठ में, हम एक एल्गोरिथम लिखेंगे जिसका उपयोग यह निर्धारित करने के लिए किया जा सकता है कि कोई बिंदु त्रिभुज के अंदर स्थित है या नहीं।

प्रिय पाठक।

आपने ज्यामितीय एल्गोरिथम श्रृंखला के कई पाठ पहले ही पढ़ लिए हैं। क्या सब कुछ लिखित उपलब्ध है? यदि आप इन पाठों के बारे में समीक्षा छोड़ते हैं तो मैं बहुत आभारी रहूंगा। शायद कुछ और सुधार की जरूरत है।

साभार, वेरा गोस्पोडारेट्स।

दो खंड दिए जाने दें। पहला डॉट्स द्वारा दिया गया है पी 1 (एक्स 1; वाई 1)और पी 2 (एक्स 2; वाई 2). दूसरा डॉट्स द्वारा दिया गया है पी 3 (एक्स 3; वाई 3)और पी 4 (एक्स 4; वाई 4).

वेक्टर उत्पादों का उपयोग करके खंडों की सापेक्ष स्थिति की जाँच की जा सकती है:

खंड पर विचार करें पी 3 पी 4और अंक पी 1और प2.

दूरसंचार विभाग पी 1रेखा के बाईं ओर स्थित है पी 3 पी 4, इसके लिए वेक्टर उत्पाद v1 > 0, क्योंकि वैक्टर सकारात्मक रूप से उन्मुख होते हैं।
दूरसंचार विभाग प2लाइन के दाईं ओर स्थित है, इसके लिए वेक्टर उत्पाद वी 2< 0 , क्योंकि वैक्टर नकारात्मक रूप से उन्मुख होते हैं।

इंगित करने के लिए पी 1और प2एक सीधी रेखा के विपरीत दिशा में लेटें पी 3 पी 4, यह पर्याप्त है कि स्थिति वी 1 वी 2< 0 (वेक्टर उत्पादों के विपरीत संकेत थे)।

खंड के लिए समान तर्क दिया जा सकता है पी 1 पी 2और अंक पी 3और पी 4.

तो यदि वी 1 वी 2< 0 और वी 3 वी 4< 0 , फिर खंड प्रतिच्छेद करते हैं।

दो वैक्टरों के क्रॉस उत्पाद की गणना सूत्र द्वारा की जाती है:

कहां:
कुल्हाड़ी, एयपहले वेक्टर के निर्देशांक हैं,
bx, द्वारादूसरे वेक्टर के निर्देशांक हैं।

उनके निर्देशांक द्वारा दिए गए दो अलग-अलग बिंदुओं से गुजरने वाली सीधी रेखा का समीकरण।

एक सीधी रेखा पर दो गैर-संपाती बिंदु दिए जाने दें: पी 1निर्देशांक के साथ ( एक्स1;वाई1)और प2निर्देशांक के साथ (एक्स 2; वाई 2).

रेखा चौराहा

तदनुसार, बिंदु पर मूल के साथ वेक्टर पी 1और एक बिंदु पर समाप्त प2निर्देशांक हैं (एक्स 2 -एक्स 1, वाई 2 -वाई 1). यदि पी (एक्स, वाई)रेखा पर एक मनमाना बिंदु है, फिर वेक्टर के निर्देशांक पी 1 पीबराबर (एक्स - एक्स 1, वाई - वाई 1)।

क्रॉस उत्पाद की मदद से, सदिशों की संपार्श्विकता की स्थिति पी 1 पीऔर पी 1 पी 2इस प्रकार लिखा जा सकता है:
|पी 1 पी,पी 1 पी 2 |=0, अर्थात। (x-x 1)(y 2 -y 1)-(y-y 1)(x 2 -x 1)=0
या
(y 2 -y 1)x + (x 1 -x 2)y + x 1 (y 1 -y 2) + y 1 (x 2 -x 1) = 0

अंतिम समीकरण इस प्रकार फिर से लिखा गया है:
कुल्हाड़ी + बाय + सी = 0, (1)
कहां
ए \u003d (वाई 2 -वाई 1),
बी \u003d (एक्स 1 -एक्स 2),
सी \u003d एक्स 1 (वाई 1 -वाई 2) + वाई 1 (एक्स 2 -एक्स 1)

अतः सरल रेखा को समीकरण (1) के रूप में दिया जा सकता है।

रेखाओं के प्रतिच्छेदन बिंदु का पता कैसे लगाएं?
स्पष्ट समाधान लाइनों के समीकरणों की प्रणाली को हल करना है:

ax 1 +by 1 =-c 1
कुल्हाड़ी 2 + बाई 2 =-सी 2
(2)

पदनाम दर्ज करें:

यहां डीप्रणाली का निर्धारक है, और डी एक्स, डी वाईसंगत अज्ञात के लिए गुणांकों के स्तंभ को मुक्त पदों के स्तंभ से प्रतिस्थापित करके प्राप्त निर्धारक हैं। यदि डी ≠ 0, तब निकाय (2) निश्चित है, अर्थात् इसका एक अद्वितीय हल है। यह समाधान निम्न सूत्रों का उपयोग करके पाया जा सकता है: एक्स 1 \u003d डी एक्स / डी, वाई 1 \u003d डी वाई / डी, जिन्हें क्रैमर का सूत्र कहा जाता है। दूसरे क्रम के निर्धारक की गणना कैसे की जाती है, इसका एक छोटा सा अनुस्मारक। निर्धारक दो विकर्णों के बीच अंतर करता है: मुख्य और द्वितीयक। मुख्य विकर्ण में निर्धारक के ऊपरी बाएँ कोने से निचले दाएं कोने तक दिशा में ले जाने वाले तत्व होते हैं। पार्श्व विकर्ण - ऊपरी दाएँ से निचले बाएँ तक। दूसरा क्रम निर्धारक मुख्य विकर्ण के तत्वों के उत्पाद के बराबर होता है जो द्वितीयक विकर्ण के तत्वों के उत्पाद के बराबर होता है।

दो खंड दिए जाने दें। पहला डॉट्स द्वारा दिया गया है पी 1 (एक्स 1; वाई 1)और पी 2 (एक्स 2; वाई 2). दूसरा डॉट्स द्वारा दिया गया है पी 3 (एक्स 3; वाई 3)और पी 4 (एक्स 4; वाई 4).

वेक्टर उत्पादों का उपयोग करके खंडों की सापेक्ष स्थिति की जाँच की जा सकती है:

खंड पर विचार करें पी 3 पी 4और अंक पी 1और प2.

दूरसंचार विभाग पी 1रेखा के बाईं ओर स्थित है पी 3 पी 4, इसके लिए वेक्टर उत्पाद v1 > 0, क्योंकि वैक्टर सकारात्मक रूप से उन्मुख होते हैं।
दूरसंचार विभाग प2लाइन के दाईं ओर स्थित है, इसके लिए वेक्टर उत्पाद वी 2< 0 , क्योंकि वैक्टर नकारात्मक रूप से उन्मुख होते हैं।

इंगित करने के लिए पी 1और प2एक सीधी रेखा के विपरीत दिशा में लेटें पी 3 पी 4, यह पर्याप्त है कि स्थिति वी 1 वी 2< 0 (वेक्टर उत्पादों के विपरीत संकेत थे)।

खंड के लिए समान तर्क दिया जा सकता है पी 1 पी 2और अंक पी 3और पी 4.

तो यदि वी 1 वी 2< 0 और वी 3 वी 4< 0 , फिर खंड प्रतिच्छेद करते हैं।

दो वैक्टरों के क्रॉस उत्पाद की गणना सूत्र द्वारा की जाती है:

कहां:
कुल्हाड़ी, एय- पहले वेक्टर के निर्देशांक,
bx, द्वारा- दूसरे वेक्टर के निर्देशांक।

उनके निर्देशांक द्वारा दिए गए दो अलग-अलग बिंदुओं से गुजरने वाली सीधी रेखा का समीकरण।

एक सीधी रेखा पर दो गैर-संपाती बिंदु दिए जाने दें: पी 1निर्देशांक के साथ ( एक्स1;वाई1)और प2निर्देशांक के साथ (एक्स 2; वाई 2). तदनुसार, बिंदु पर मूल के साथ वेक्टर पी 1और एक बिंदु पर समाप्त प2निर्देशांक हैं (एक्स 2 -एक्स 1, वाई 2 -वाई 1). यदि पी (एक्स, वाई)रेखा पर एक मनमाना बिंदु है, फिर वेक्टर के निर्देशांक पी 1 पीबराबर (एक्स - एक्स 1, वाई - वाई 1)।

क्रॉस उत्पाद की मदद से, सदिशों की संपार्श्विकता की स्थिति पी 1 पीऔर पी 1 पी 2इस प्रकार लिखा जा सकता है:
|पी 1 पी ,पी 1 पी 2 |=0, अर्थात। (x-x 1)(y 2 -y 1)-(y-y 1)(x 2 -x 1)=0
या
(y 2 -y 1)x + (x 1 -x 2)y + x 1 (y 1 -y 2) + y 1 (x 2 -x 1) = 0

अंतिम समीकरण इस प्रकार फिर से लिखा गया है:
कुल्हाड़ी + बाय + सी = 0, (1)
कहां
ए \u003d (वाई 2 -वाई 1),
बी \u003d (एक्स 1 -एक्स 2),
सी \u003d एक्स 1 (वाई 1 -वाई 2) + वाई 1 (एक्स 2 -एक्स 1)

अतः सरल रेखा को समीकरण (1) के रूप में दिया जा सकता है।

रेखाओं के प्रतिच्छेदन बिंदु का पता कैसे लगाएं?
स्पष्ट समाधान लाइनों के समीकरणों की प्रणाली को हल करना है:

ax 1 +by 1 =-c 1
कुल्हाड़ी 2 + बाई 2 =-सी 2
(2)

पदनाम दर्ज करें:

यहां डीप्रणाली का निर्धारक है, और डी एक्स, डी वाईमुक्त शर्तों के एक स्तंभ के साथ संबंधित अज्ञात के लिए गुणांक के स्तंभ को बदलने के परिणामस्वरूप निर्धारक हैं। यदि डी ≠ 0, तब निकाय (2) निश्चित है, अर्थात् इसका एक अद्वितीय हल है। यह समाधान निम्न सूत्रों का उपयोग करके पाया जा सकता है: एक्स 1 \u003d डी एक्स / डी, वाई 1 \u003d डी वाई / डी, जिन्हें क्रैमर का सूत्र कहा जाता है। दूसरे क्रम के निर्धारक की गणना कैसे की जाती है, इसका एक छोटा सा अनुस्मारक। निर्धारक दो विकर्णों के बीच अंतर करता है: मुख्य और द्वितीयक। मुख्य विकर्ण में निर्धारक के ऊपरी बाएँ कोने से निचले दाएं कोने तक दिशा में ले जाने वाले तत्व होते हैं। पार्श्व विकर्ण - ऊपरी दाएँ से निचले बाएँ तक। दूसरा क्रम निर्धारक मुख्य विकर्ण के तत्वों के उत्पाद के बराबर होता है जो द्वितीयक विकर्ण के तत्वों के उत्पाद के बराबर होता है।