Az euklideszi geometriában két egyenes metszéspontja lehet egy üres halmaz , egy pont vagy egy egyenes. Ezeknek az eseteknek a megkülönböztetését és a metszéspont megtalálását használják például a számítógépes grafikában , a mozgástervezésben és az ütközésészlelésben .
A háromdimenziós euklideszi geometriában, ha két egyenes nincs ugyanabban a síkban , akkor ferdeségnek nevezzük őket, és nincs metszéspontjuk. Ha a vonalak ugyanabban a síkban vannak, három lehetőség van. Ha egybeesnek, akkor végtelenül sok közös pontjuk van (nevezetesen az összes pont ezeken az egyeneseken). Ha a vonalak különállóak, de a meredeksége megegyezik , akkor párhuzamosak és nincs közös pontjuk. Ellenkező esetben egy metszéspontjuk van.
A nem euklideszi geometriában két egyenes több pontban is metszi egymást, és egy adott egyenessel nem metsző egyéb (párhuzamos) egyenesek száma egynél nagyobb lehet.
Két egyenes metszéspontjának szükséges feltétele , hogy egy síkhoz tartozzanak, vagyis ezek az egyenesek ne metsszék egymást. Ennek a feltételnek a teljesülése egyenértékű a tetraéder degenerációjával , amelyben két csúcs van az egyik egyenesen, a másik kettő pedig a másikon (azaz ennek a tetraédernek a térfogata nullával egyenlő). Ennek a feltételnek az algebrai formája a " Keresztezettség ellenőrzése " című cikkben található .
Tekintsük két egyenes és a metszéspontját a síkon, ahol az egyenest két különböző pont és , az egyenest pedig különböző pontok és [1] határozzák meg .
A és vonalak metszéspontja a determinánsok segítségével található meg .
A determinánsok átírhatók a következőképpen:
Ne feledje, hogy a metszéspont a végtelen vonalakra vonatkozik, nem a pontok közötti szakaszokra , és a szakaszokon kívül is lehet. Ha (egy lépésben történő megoldás helyett) elsőrendű Bezier -görbék alapján keresünk megoldást, akkor ezeknek a görbéknek a paramétereit ellenőrizhetjük 0,0 ≤ t ≤ 1,0 és 0,0 ≤ u ≤ 1,0 ( t és u paraméterek) .
Ha két egyenes párhuzamos vagy egybeesik, a nevező eltűnik:
Ha a vonalak nagyon közel vannak a párhuzamoshoz (majdnem párhuzamosak), akkor a számítógépes számítás során numerikus problémák adódhatnak, és egy ilyen feltétel felismerése az alkalmazáshoz megfelelő "bizonytalansági" tesztet igényelhet. Stabilabb és általánosabb megoldás érhető el, ha a szakaszokat úgy forgatjuk el, hogy az egyik vízszintes legyen, majd a második egyenes paraméteres megoldása könnyen megkapható. Megoldáskor a speciális esetek (egyenesek párhuzamossága/egybeesése, szakaszok átfedése) gondos mérlegelése szükséges.
Két nem függőleges egyenes koordinátái és metszéspontjai könnyen megtalálhatók a következő helyettesítések és transzformációk segítségével.
Tegyük fel, hogy két egyenesnek van egyenlete és , ahol és a vonalak meredeksége , és és a vonalak metszéspontjai az y tengellyel . Az egyenesek metszéspontjában (ha metszik) mindkét koordináta egybeesik, amiből megkapjuk az egyenlőséget:
.Ezt az egyenlőséget úgy alakíthatjuk át, hogy kiemeljük ,
,és akkor
.Az y koordináta megtalálásához mindössze annyit kell tennünk, hogy az x értéket be kell dugni az egyik vonalképletbe, például az elsőbe:
.Innen kapjuk meg a vonalak metszéspontját
.Figyeljük meg, hogy a = b esetén a két egyenes párhuzamos. Ha egyszerre c ≠ d , akkor az egyenesek különbözőek és nincs metszéspontjuk, ellenkező esetben az egyenesek egybeesnek [2] .
Ha homogén koordinátákat használunk , akkor két kifejezetten megadott egyenes metszéspontja egyszerűen megtalálható. A 2-dimenziós térben bármely pont definiálható egy háromdimenziós pont hármasával adott vetületeként . A 3-dimenziós koordináták 2-dimenziós koordinátáinak leképezése a képlet szerint történik . A 2-dimenziós térben lévő pontokat homogén koordinátákká alakíthatjuk át, ha a harmadik koordinátát egy - .
Tegyük fel, hogy meg akarjuk találni két végtelen egyenes metszéspontját 2-dimenziós térben, amelyeket az és a képletek adnak meg . Ezt a két egyenest lineáris koordinátákkal ábrázolhatjuk, mint ,
Két egyenes metszéspontját egyszerűen megadjuk a képletekkel [3]
Ha , a vonalak nem metszik egymást.
A kétdimenziós térben a kettőnél több vonalak szinte biztosan nem metszik egymást egy pontban. Annak meghatározására, hogy egy pontban metszik-e egymást, és ha metszik-e, akkor megtaláljuk a metszéspontot, felírjuk az i - edik egyenletet ( i = 1, ..., n ), és ezeket az egyenleteket mátrix alakban rendezzük.
ahol az n × 2 A mátrix i- edik sora , w egy 2 × 1 vektor ( x, y ) T , és a b oszlopvektor i- edik eleme b i . Ha az A mátrix oszlopai függetlenek , akkor a mátrix rangja 2. Akkor és csak akkor, ha a kiterjesztett mátrix rangja [ A | b ] is egyenlő 2-vel, van megoldása a mátrixegyenletnek, majd van n egyenes metszéspontja is . A metszéspontot, ha létezik, az adja meg
ahol a mátrix pszeudoinverze . Alternatív megoldásként a megoldást két független egyenlet megoldásával is megtalálhatjuk. De ha az A mátrix rangja 1 és a kiterjesztett mátrix rangja 2, akkor nincs megoldás. Abban az esetben, ha a kiterjesztett mátrix rangja egyenlő 1-gyel, minden sor egybeesik.
3D térbenA fent bemutatott megközelítés könnyen kiterjeszthető a háromdimenziós térre is. Háromdimenziós és magasabb terekben még két egyenes sem metszi egymást szinte biztosan. A nem párhuzamos, nem metsző egyenesek párjait ferdeségnek nevezzük . De ha létezik egy kereszteződés, az a következőképpen található meg.
A háromdimenziós térben egy egyenest két sík metszéspontja ábrázol, amelyek mindegyikét a képlet adja meg. Ekkor az n egyenes halmaz 2 n egyenletként ábrázolható egy 3 dimenziós w = koordináta vektorból . x , y , z ) T :
,ahol A egy 2n × 3 mátrix és b egy 2n × 1 mátrix Mint korábban, akkor és csak akkor létezik egyedi metszéspont, ha A teljes oszloprangsorral és a kiterjesztett mátrixszal rendelkezik [ A | b ] nem. Az egyetlen metszéspontot, ha létezik, az adja meg
A kettes és nagyobb dimenziókban megtalálhatjuk azt a pontot, amely a legközelebb van ehhez a két (vagy több) egyeneshez a legkisebb négyzetösszeg értelmében .
Két dimenzióbanKétdimenziós tér esetén ábrázoljuk az i egyenest az egyenes pontjaként és az egyenesre merőleges egységnormálisként . Vagyis ha és pontok az 1. egyenesen, akkor legyen és
,amely az egységvektor a 90°-kal elforgatott egyenes mentén.
Figyeljük meg, hogy az x pont és az egyenes távolságát a képlet adja meg
Ezért az x távolság négyzete az egyenes
Egy vonalhalmaz távolságának négyzetes összege a célfüggvény :
A kifejezés konvertálható:
A minimum meghatározásához különbséget teszünk x -hez képest, és az eredményt nullára állítjuk:
Ily módon
ahol
3D térbenBár a normál kettő feletti dimenziókban nem definiálható , de bármely dimenzióra általánosítható, ha észrevesszük, hogy ez egyszerűen egy (szimmetrikus) mátrix, amelynek minden sajátértéke egyenlő eggyel, kivéve a nulla sajátértéket az egyenes irányában. , amely félnormát ad egy pont és egy másik pont között. Egy tetszőleges méretű térben, ha egységvektor az i -edik egyenes mentén, akkor
átváltozik _ahol E az azonosságmátrix, majd