Mathematisches Problem beim Zeichnen mit MoveTo, LineTo...
-
Hallo,
Ich bin gerade bei der Entwicklung eines Programms.
Und zwar, habe ich einen Kreis, mit einem Radius von 50px. den Kreis habe ich mit folgender Zeile gezeichnet:
dc.Ellipse(400,200,500,300);
so, jetzt soll eine Linie aus dem Mittelpunkt des Kreises in eine bestimmte Position gefahren werden, und das Programm soll den Schnittpunkt vom Kreis und der Linie Berechnen.
Ich habe jetzt z.B. eine Linie, die geht von der Position 450,250 nach 320,161.
Und das Programm soll die Koordinate Berechnen indem sich die gezeichnete Linie mit dem Kreis triff.
zur veranschaulichung, habe ich ein Screenshot aus dem Programm gemacht. Die schwarzen Linien habe ich zur erklärung Nachträglich eingefügt.
http://www.ewetel.net/~alfons.schwieters/1.jpgIch bin für jede Antwort dankbar.

-
Ich könnt mir auch per Mail oder ICQ antworten...
Danke

-
Ich würde alles in 2 Dreiecke aufteilen und über den Pythaogoras gehen.
Das Gesamtdreieck aus den bekannten Punkten ergibt sich mit den Seitenlängen:
a= x2-x1
b= y2-y1Die Seite c kann man ausrechnen.
Die Seite a unterteile ich in a1 und (a-a1), b in b1 und (b-b1) und c in r und (c-r).
Dann habe ich 2 Dreiecke mit a1, b1, r und (a-a1), (b-b1), (c-r)
Und dann habe ich das Gleichungssystem
(a1)^2 + (b1)^2 = (r)^2
(a-a1)^2 + (b-b1)^2 = (c-r)^2Und das muss man nun auflösen. a1 und b1 sind die Unbekannten
-
Tino_ schrieb:
Ich würde alles in 2 Dreiecke aufteilen und über den Pythaogoras gehen.
Das Gesamtdreieck aus den bekannten Punkten ergibt sich mit den Seitenlängen:
a= x2-x1
b= y2-y1Die Seite c kann man ausrechnen.
Die Seite a unterteile ich in a1 und (a-a1), b in b1 und (b-b1) und c in r und (c-r).
Dann habe ich 2 Dreiecke mit a1, b1, r und (a-a1), (b-b1), (c-r)
Und dann habe ich das Gleichungssystem
(a1)^2 + (b1)^2 = (r)^2
(a-a1)^2 + (b-b1)^2 = (c-r)^2Und das muss man nun auflösen. a1 und b1 sind die Unbekannten
könntest du mir aufzeichnen, wo du die Dreiecke setzen würdest?
Ich weiß nämlich nicht wo die hin sollen.Danke
MfG thsich
-
Ich habe keine Ahnung, wie ich hier was zeichnen soll.
Also das 1. Dreieck liegt im Kreis. Mittelpunkt zum gesuchten Punkt (Hypothenuse) und der dritte Punkt liegt senkrecht unter dem gesuchten Punkt auf Höhe des Mittelpunktes also 250.
Das 2 Dreieck beginnt am gesuchten Punkt, dann nach waagerecht nach links bis x=320 und dann senkrecht nach oben zu 161,320.
Das alles geht bestimmt auch einfacher.
-
Tino_ schrieb:
Ich habe keine Ahnung, wie ich hier was zeichnen soll.
Also das 1. Dreieck liegt im Kreis. Mittelpunkt zum gesuchten Punkt (Hypothenuse) und der dritte Punkt liegt senkrecht unter dem gesuchten Punkt auf Höhe des Mittelpunktes also 250.
Das 2 Dreieck beginnt am gesuchten Punkt, dann nach waagerecht nach links bis x=320 und dann senkrecht nach oben zu 161,320.
Das alles geht bestimmt auch einfacher.
Ja, was du schreibst stimmt, aber das Problem ist ja, das der vorgegebene Punkt (320/161) variiert. Und somit variiert auch der gesuchte Punkt. Und deshalbt geht das nicht mit den dreiecken...
Leider.

-
Der Punkt kann doch ruhig variieren. Hauptsache du hast die aktuellen Koordinaten.
-
Tino_ schrieb:
Der Punkt kann doch ruhig variieren. Hauptsache du hast die aktuellen Koordinaten.
ja, da liegt ja auch ein Problem...
Die Koordinaten zwischen dem Mittelpunkt vom Kreis und dem aktuellen Punkt habe ich ja gar nicht. Das ist ja eben der gesuchte Punkt. Ich brauche ja nur die Koordinaten mehr nicht.
Ich habe eigentlich an so eine Funktion gedacht, wo man einfach ein paar sachen eingibt, und die einem das Ergebnis rausschmeisst.
-
hi
Ganz allgemein (Du brauchst Dich nicht auf Kreisgrösse und feste Kreiskoordinaten festlegen):
Koordinaten des Schnittpunktes (x,y):
x = x0 + r * cos t
y = y0 + r * sin t(x0,y0) Kreismittelpunkt
r Radius des Kreises
t Winkel Deiner LinieWinkel der Linie aus Koordinaten Anfangs- und Endpunkt der Linie errechnen.
Noch Fragen?