SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • hockeywebcasts

    hockeywebcas

    31 EKİM 2012
  • IGN

    IGN

    19 EYLÜL 2006
  • REK Roth Productions

    REK Roth Pro

    8 Ocak 2011