De straal van een cirkel bepalen bij drie gegeven punten
Ik ben een programma aan het schrijven voor het bepalen van de diameter van de cirkel die door 3 gegeven punten gaan.
Ik bepaal de coördinaten van de punten A(x1,y1), B(x2,y2), C(x3,y3)
Ik bereken de richtingscoëfficient van de rechte AB : m1 = (y2 - y1)/(x2 - x1)
Ik doe hetzelfde voor de rechte BC : m2 = (y3 - y2)/(x3 - x2)
Nu kan ik de hoek 'h' bepalen tussen beide rechten met: tg (h) = +/- (m1 - m2)/(1 + m1 . m2) hieruit leid ik de grootte af van de hoek 'h'
Ik bepaal de lengte van het lijnstuk AC ( vierkantswortel uit de som van de kwadraten van (y3 - y1) en (x3 - x1 ))
De lengte van de diameter 'd' van de cirkel omschreven aan de driehoek ABC kan ik nu berekenen met : d = lengte AC / sin (h)
Het addertje in het gras is natuurlijk de +/- bij de formule voor tg(h), want dat geeft me twee waarden. Anderzijds is de waarde van de hoek (h) in het hoekpunt B van de driehoek ABC eenduidig.
Wat staat er me te doen om uit de twee oplossingen voor tg(h) de 'goede' waarde te kiezen ?
Met dank bij voorbaat.
Karel
Iets anders - vrijdag 22 november 2002
Antwoord
Hoi,
Kijk je ook eens op Uit 3 punten de cirkel berekenen en Uit 3 punten de cirkel berekenen. Jouw manier kan ook werken. De tangens kan + of - zijn. De hoek is dan supplementair (de kleine of grote hoek tussen twee rechten). Het goede nieuws is dat sin(x)=sin( -x). Je kan dus kiezen of je + of - neemt. Het resultaat moet hetzelfde zijn.