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ş:
En büyük bulmak dikdörtgen sadece sıfı...
İki Enlem Arasındaki Mesafe Bulmak içi...
Belirli bir noktaya 10 en yakın bulmak...
Eğer bir bağlantı noktası bulmak için ...
Bu bulmak / güncel / nokta klasöre çık...