Nasıl iki ışının kesiştiği tespit ediyorsunuz?
Nasıl ya iki satır kesiştiği olup olmadığını, ve eğer yaparlarsa, x,y puan ne belirleyebilirim?
CEVAP
Vektör çapraz ürün kullanır, bu sorun için iyi bir yaklaşım var. 2 boyutlu vektör çapraz ürün tanımlayınv×wolmakv
İki çizgi parçaları çalıştırmak varsayalımpiçinprve dansiçinss. O zaman ilk çizgi üzerinde herhangi bir nokta olarak gösterilebilirptr(bir skaler parametretve ikinci hat üzerindeki herhangi bir noktaya kadarsus(bir skaler parametreu).
İki satır eğer bulabilirsek bilgisayartveuöyle ki:
ptr=sus
Her iki çaprazsalıyorum
(ptr) ×s( . = ^strong>sus) ×s
Ve o zamandan beris×s= 0, bu demektir
t(r×s) = (s−p) ×s
Ve bu nedenle, çözmek içint:
t( . = ^strong>s−p) ×s( . / ^strong>r×s)
Aynı şekilde çözebilirizu:
(ptr) ×r( . = ^strong>sus) ×r
u(s×r) = (p−s) ×r
u( . = ^strong>p−s) ×r( . / ^strong>s×r)
Hesaplama adımları sayısını azaltmak için, uygun izler (hatırlamak . bu yeniden yazmak içins×r= −r×s):
u( . = ^strong>s−p) ×r( . / ^strong>r×s)
Şimdi dört durum vardır:
Eğerr×s= 0 ve (s−p) ×r= 0, o zaman iki hat aynı doğrultuda.
Bu durumda, ikinci doğru parçasının bitiş noktası express (svessilk çizgi parçasının denklemi açısından (ptr):
t
0( . = ^strong>s−p) ·r( . / ^strong>r·r) t
1( . = ^strong>ss−p) ·r( . / ^strong>r·r) =t 0s·r( . / ^strong>r·r) Arasındaki aralığıt
0vet 1kesişen aralığı [0, 1] kesimleri aynı doğrultuda ve örtüşen satır sonra; aksi takdirde aynı doğrultuda ve ayrık. Bu notsverters yönde işaret sonras·r&kontrol aralığı; 0 ve lt [t
1,t 0] yerine [t 0,t 1]. Eğerr×s= 0 ve (s−p) ×r≠ 0, sonra iki satır paralel olmayan kesişen.
Eğerr×s≠ 0 ve 0-No.tNo. 1 ve 0-No.uNo. 1, iki çizgi parçaları noktasında buluşuyorptr=sus.
Aksi takdirde, iki çizgi parçaları paralel değildir ama bilgisayar yok.
Kredi: Bu yöntem makalesinden "" Ronald Goldman, yayınlandı . üç-uzayda iki çizgilerin Kesiştiği 3D çizgi kesişim algoritması 2 boyutlu uzmanlaşmaGrafik Taşlar, 304 sayfa. Üç boyutlu olarak, olağan durum hatları bu durumda yöntemi noktaları iki satırı en yakın yaklaşım verir skew (ne paralel ne de kesişiyor.
Nasıl Kredi Kartı tip numarası göre te...
Nasıl bir tarayıcı VML veya SVG desteğ...
Nasıl JavaScript devre dışı olup olmad...
Nasıl C/C tamsayı taşması tespit etmek...
Nasıl iPhone 5 (geniş ekran cihazlar) ...