İki çizginin (doğru parçasının) çakışması problemi - Erdinç Uzun
Posted on 5 Şubat 2017 17 Aralık 2018 by erdincuzun
Bu problemin çözümünde Cramer Kuralını, matris ve determinant hesaplama kullanılacaktır. Problemin çözümünü adım adım yapalım.
Birinci çizgi X1, Y1 ile başlayıp X2, Y2 koordinatlarında biterken ikinci çizgi X3, Y3 ile başlayıp X4, Y4 koordinatlarında bitiyor ve X, Y kesişim noktası olarak bulunuyor. Amaç X ve Y koordinatlarını bulmak.
Bir doğruyu ax + by = c şeklinde formülize edebiliriz. Bu durumda iki doğru için:
a1x1 + b1y1 = c1 ve
a2x2 + b2y2 = c2
a1 = y2 – y1;
b1 = x1 – x2;
c1 = a1x1 + b1y1
c2 = a2x3 + b2y3
Bu iki doğrunun determinatını bulalım.
Determinant sıfır çıkması bu iki doğrunun birbirine paralel veya eşit olduğunu gösterir. Başka bir deyişle bir kesişim noktası yoktur. Eğer determinant farklı sıfır ise kesişim bulmak için Cramer kuralını uygulayalım.
Bu formülasyondan x ve y koordinatı hesaplanabilir. Yanlız bizim doğrular sınırlı idi (Doğrudan ayırmak için çizgi (doğru parçası) ismini kullandım). Yani doğrular çok fazla ilerde kesişebilir. Çizgilerimizin kesişip kesişmediğini bulmak için aşağıdaki 4 şartı sağlaması gerekmektedir.
min(x1, x2) <= x <= max(x1, x2)
min(x3, x4) <= x <= max(x3, x4)
min(y1, y2) <= y <= max(y1, y2)
min(y3, y4) <= y <= max(y3, y4)
Bazen şu ders neye yarayacak, bu ders neye yarayacak diyen öğrencileri görüyorum. Eğer uygulama geliştirmezsen haklısın bir işine yaramayacaklar. Ama farklı problemlere çözüm bulmak istersen dersleri ve derslerden fazlasını bilmelisin. Her şeyi ezberleyin demiyorum. Bizim formül ezberlemekle işimiz yok. Formülleri modifiye edip kullanabilmeliyiz. Özellikle de Sayısal Analiz ne işime yarayacak diyen çok kişi var. Bu ders kodlamanın ve kodlama mantığının en güzel kullanıldığı derstir. Eğer temel dersleri bilmezseniz ve araştıracağınız konuyu bilip kodlamaya dökemezseniz piyasada ön plana çıkmanız zordur. Bol kodlu günler…
Circle-Line Collision Tutorial
Sonraki: SVG »