Kreisschnittpunkt-Berechnung



  • Hallo, habe folgendes Problem:

    Ich habe einen Kreis in einem Rechteck (z.B. 1,1,10,10).
    Also hat der Kreis den Radius von 5.

    Wenn ich einen Punkt auf dem Rechteck habe (auf dem Rand), z.B. (5,3), wie kann ich den Schnittpunkt der Geraden von (5,3) durch den Mittelpunkt des Kreises (5,5) mit dem Kreis berechnen ?

    Gruss Daniel666



  • Hallo,

    Daniel666 schrieb:

    Ich habe einen Kreis in einem Rechteck (z.B. 1,1,10,10).
    Also hat der Kreis den Radius von 5.

    Wo sitzt denn der Kreis im Rechteck? In der Mitte? Und er steht nirgends drüber raus? Dann müßte es 4,5 heißen.
    Könntest Du vielleicht nochmal genauer erläutern wie das ganze aussehen soll?

    Allgemein kannst Du einen Kreis in der Ebene durch eine Gleichung beschreiben:

    (x1-m1)2+(x2-m2)2=r^2, dabei sind x1, x2 die beiden Koordinaten, m1,m2 die Koordinaten des Mittelpunktes, r ist der Radius.

    Dann stellst Du Deine Gerade auf und schneidest die beiden miteinander.



  • Es geht eigentlich um folgendes:

    Ich habe einen Kreis auf einem Formular.
    Wenn ich nun mit der Maus auf das Formular klicke, erhalte ich einen Punkt x,y.

    Ich möchte den Schnittpunkt der Geraden vom Punkt (x,y) durch den Mittelpunkt des Kreises (mx,my) mit dem Kreis berechnen.

    Gruss Daniel666



  • Also dann:

    Dann stellen wir doch die Gerade erstmal auf:

    g: (x1,x2) = X = (xm,ym) + t*(x-xm,y-ym) mit t \in R
    x1 = xm+t*(x-xm)
    y1 = ym+t*(y-ym)

    Und der Kreis:

    (x1-xm)2+(y1-ym)2 = r^2, r ist Radius.
    Einsetzen von x1,y1:

    (t*(x-xm))^2 + (t*(y-ym))^2 = r^2 ↔
    t^2 ((x-xm)2+(y-ym)2) = r^2 ↔
    t^2 = r^2 / ((x-xm)2+(y-ym)2)

    Also t = +- √(x-xm)2+(y-ym)2
    Wenn Du diese ts jetzt oben in die Geradengleichung einsetzt kriegst Du die Schnittpunkte. Es gibt nämlich deren zwei und nicht nur einen.

    Hoffe das hilft!
    Jester



  • ...super besten Dank...meine mathematischen Kenntnisse scheinen doch etwas eingerostet !

    Gruss Daniel666



  • Geht das auch noch umgekehrt ?

    Also mal angenommen der Kreis hat einen Umfang von 1000 Pixeln und ich habe die Koordinaten eines Punktes, der auf dem Kreis liegt.
    Wie bekomme ich heraus der wievielte Punkt des Kreisumfangs das ist ?

    Gruss Daniel666



  • Ein Kreisumfang hat keine Punkte. Wenn Du die Kreislini meinst, die hat unendlich viele Punkte (sogar überabzählbar viele), das heißt man kann da garnicht ordentlich zählen. Oder was meinst Du?



  • Wenn ich den Umfang eines Kreises berechne mit 2*r*PI erhalte ich doch einen Wert, z.B. 1000.
    In meinem Programm wären das dann 1000 Pixel.
    Wenn ich die Koordinaten eines Punktes habe, der auf dem Kreis liegt, wie kann ich den Punkt bezogen auf den Umfang bekommen ?

    Also z.B. 500 Pixel,was 50% des Umfanges entsprächen.

    Ich hoffe es ist ein wenig klarer geworden...



  • Hm dazu müßtest Du noch einen Punkt festlegen von dem aus Du rechnest. Und was Du raushaben willst ist die Bogenlänge zwischen diesen Punkte.

    Wenn Du eine Stelle festgelegt hast, dann könntest Du den Winkel zwischen den Verbindunglinien des Kreismittelpunktes zu den beiden Punkten auf dem Rand bestimmen. Dieser Winkel/360° * Kreisumfang ist dann die Bogenlänge.



  • Sorry, dass ich so blöd bin...

    Ich habe einen zweiten Punkt, den Startpunkt (1,1).
    Wenn ich nun den zweiten Punkt habe, wie kann ich da denn den Winkel berechnen ?
    Ich bin mir schon klar darüber, dass das Mathematik der Unterstufe ist, habe aber wirklich keine Ahnung mehr.
    Geht das mit sin und cos ?



  • Zum Beispiel, oder mit Skalarprodukt, damit berechnest Du allerdings den cos des Winkels.



  • Wie berechne ich denn diesen Winkel ?


Anmelden zum Antworten