20 ŞUBAT 2010, CUMARTESİ
bir uçak formunda ise 4 puan bir dikdörtgen bulmak?
Biri lütfen bana gösterin C-tarzı yarı kod yazarken nasıl bir fonksiyon (temsil noktaları ancak senin gibi) bu doğru ise, doğru verir 4-puan (besten işlevi) şeklinde bir dikdörtgen ve bir yanlış yoksa?
İlk eşit puan 2 ayrı çiftleri bulmak için çalışan bir çözüm ile x-değeri geldim, y ekseni için yapar. Ama bu kod oldukça uzun. Sadece merak ettim diğerleri ile gelip ne olduğunu görmek için.
CEVAP
20 ŞUBAT 2010, CUMARTESİ
- köşe noktaları kütle merkezini bulun: C=(x1 x2 x3 x4)/4 cy=(y1 y2 y3 y4)/4
- tüm 4 köşesine kütle merkezine uzaklıkları Kare test eşittir
bool isRectangle(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4) { double cx,cy; double dd1,dd2,dd3,dd4; cx=(x1 x2 x3 x4)/4; cy=(y1 y2 y3 y4)/4; dd1=sqr(cx-x1) sqr(cy-y1); dd2=sqr(cx-x2) sqr(cy-y2); dd3=sqr(cx-x3) sqr(cy-y3); dd4=sqr(cx-x4) sqr(cy-y4); return dd1==dd2 && dd1==dd3 && dd1==dd4; }
(Pratikte tabii ki iki kayan nokta sayıları eşit a ve b testi, sonlu doğruluk ile yapılmalıdır: abs(a-b) örneğin,&; 1E-6 lt)
Bunu Paylaş:
Belirli bir noktaya 10 en yakın bulmak...
İki Enlem Arasındaki Mesafe Bulmak içi...
En büyük bulmak dikdörtgen sadece sıfı...
Nasıl MS SQL Server 2008 için bağlantı...
Java kullanıcı ev dizinini bulmak için...