Tangenten an Kreis durch Punkt ausserhalb, aber kein M

Neue Frage »

Herbie Auf diesen Beitrag antworten »
Tangenten an Kreis durch Punkt ausserhalb, aber kein M
Meine Frage:
Für eine grafische Ausgabe müssen die Tangenten-Berührungspunkte berechnet werden. Gegeben ist dabei a) die Tangentengeraden t1 und t2 und der Radius r des Kreises oder b) die Gerade, die durch M und P geht und der Radius r. In beiden Fällen ist ist M nicht bekannt.
Konkrete Anwendungen:
1) Die Eckpunkte einer Raute sollen mit Radius r gerundet werden.
Bekannt sind: Eckpunkte/Mittelpunkt der Raute und der Radius.
2) Die Spitzen eines Sterns sollen mit dem Radius r gerundet werden.
Bekannt sind: Mittelpunkt/Spitzen des Sterns und der Radius.

Meine Ideen:
Mittels trigonometriescher Berechnungen, ausgehend von einer Tangente sowie der Geraden, die durch den Mittelpunkt der Raute und den Tangentenpunkt geht, habe ich es geschafft bei der Raute die Punkte zu erhalten. Dabei sind aber viele rechte Winkel und die Tatsache im Spiel, dass xR/yR oft gleich eines der Mittelpunkte-Koordinaten des Kreises xM/yM ist.
Jetzt kommt der Sternhinzu und da fehlt mir der allgemeine Ansatz. Ich recherchiere gerade Pol und Polare. Darin muss wohl die Lösung liegen!?
Leopold Auf diesen Beitrag antworten »

Mir ist nicht ganz klar, was du meinst, wenn du davon sprichst, etwas sei bekannt. Ich gehe einmal von Folgendem aus. Bitte sag, wenn es anders ist. Es wird wohl ein kartesisches Koordinatensystem zugrunde liegen.

1. Gegeben sind die Gleichungen zweier sich schneidender Geraden.

2. Gegeben ist der Radius eines Kreises, zu dem die beiden Geraden aus 1. Tangenten sind.

Gesucht ist der Mittelpunkt des Kreises sowie die Berührungspunkte der Tangenten mit dem Kreis.

Zunächst sollte dir klar sein, daß es zu dieser Beschreibung 4 Lösungskreise gibt, denn die beiden Geraden bilden vier Winkelfelder. Du mußt daher eine Möglichkeit finden herauszufinden, um welches Winkelfeld es geht.

a) Die Zeichnung zeigt die geometrische Konstruktion. Zu den Geraden aus 1. (blau) werden zwei Parallelenpaare im Abstand des Radius aus 2. gezeichnet (rot).

b) Die Parallelenpaare generieren vier Schnittpunkte. Einer davon liegt in dem dich interessierenden Winkelfeld. Ihn mußt du auswählen als Mittelpunkt des Kreises.

c) Indem du vom Mittelpunkt des Kreises aus Lote auf die Geraden aus 1. fällst, findest du die Berührungspunkte der Tangenten mit dem Kreis.

[attach]52408[/attach]

Ein paar Hinweise zur rechnerischen Umsetzung.

a) Um die Parallelengleichungen aufzustellen, könntest du mit der Hesseschen Normalform einer Geraden arbeiten.

b) Die Schnittpunkte kannst du zum Beispiel mit der Cramerschen Regel erhalten. Wenn du von vorneherein weißt, in welchem Winkelfeld der Schnittpunkt liegt, genügt es, die beiden zuständigen Parallelen zu schneiden.

c) Für die Lotgeraden brauchst du orthogonale Normalenvektoren. Im Zweidimensionalen ist das einfach: Koordinaten vertauschen und bei einer der Koordinaten das Vorzeichen ändern. Die Schnittpunkte kannst du wieder mit der Cramerschen Regel erhalten.
rumar Auf diesen Beitrag antworten »
RE: Tangenten an Kreis durch Punkt ausserhalb, aber kein M
Beim Beispiel mit der Raute würde ich wohl zunächst ein Hilfskoordinatensystem einführen, dessen Achsen auf den Diagonalen der Raute liegen. In diesem Koordinatensystem hat etwa die rechte obere Rautenseite eine gewisse Geradengleichung. Dann würde ich z.B. mit der Methode der "Hesse-Normalenform" die Gleichung der unteren Parallele p zu dieser Geraden im Abstand r aufstellen. Die Achsenschnittpunkte dieser Parallelen p sind dann die Mittelpunkte von zweien der gesuchten Kreise. Dann kann man die Radiusvektoren von diesen Mittelpunkten zu den betreffenden Berührungspunkten benützen, um deren Koordinaten zu berechnen.
Alles Weitere ergibt sich durch Symmetrieüberlegungen (und allenfalls eine einfache Verschiebung, um auf das ursprüngliche Koordinatensystem umzurechnen).

https://de.wikipedia.org/wiki/Hessesche_...eradengleichung
Herbie Auf diesen Beitrag antworten »
Konkretisierung
Hi Leopold,

ich hoffe die namentliche Ansprache ist im MatheBoard erlaubt. Wenn nicht bitte mir das zu Entschuldigen. Damit das Problem klarer ist, habe ich es in einer Zeichnung nochmals konkretisiert. Je nach Fall in meinem Grafik-Zeichenprogramm, dem ein kartesisches Koordinatensystem im umgekehrter Y-Achse zugrunde liegt, habe ich Folgendes gegeben:
1) Punkte P, P1, P2 und der Radius
2) Punkte P, P3 und der Radius
Mit diesen Daten muss ich nun die Punktkoordinaten von B1 und B2 ermitteln, mit denen ich dann eine Bézier-Kurve zum Zeichnen des Kreisbogens von B1 nach B2 generiere.

Ich habe mehrere Ansätze mit der Punkt-Steigungsform der Tangenten und der Kreisgleichung versucht, bin jedoch immer wieder auf einen Fehler gestoßen. Ich vermute, ich übersehe irgendetwas oder ich habe mich in Etwas falsches verrannt.

Momentan arbeite ich mit der Polaren und der Subtraktion der beiden Kreisgleichungen um M und T. Bin jedoch noch zu keinem Ergebnis gekommen!

Für detailierte Hilfe wäre ich sehr dankbar.

Danke & gesund bleiben/werden! Herbie
riwe Auf diesen Beitrag antworten »
RE: Tangenten an Kreis durch Punkt ausserhalb, aber kein M
möglicherweise so gemeint
mYthos Auf diesen Beitrag antworten »

Auf die letzte Grafik bezogen, ist die Angabe von P, P1, P2, P3 überbestimmt.
Denn P3 liegt ohnehin schon auf der (Innen-)Winkelhalbierenden von PP1 und PP2, diese ist PP_3.
-------
Der gesuchte Mittelpunkt liegt auf den Parallelen zu PP1 und PP2 im Abstand r und auch auf PP.
Die Berührungspunkte bestimmt man mit der Polaren.

mY+
 
 
Herbie Auf diesen Beitrag antworten »
Nicht überbestimmt. Zwei verschiedene Fälle.
Ich denke nicht, dass eine Überbestimmung vorliegt, da es sich um zwei verschiedene Gegebenheiten handelt.
In einem Fall ist P, P1, P2 und Radius gegeben. Im anderen Fall ist P, P3 und Radius gegeben.
Ich denke auch, dass man die Berührpunkte mit der Polaren bestimmt. Leider hab ich noch nicht erkannt, wie. Ich erkanne leider die Zusammenhänge noch nicht!
Herbie
mYthos Auf diesen Beitrag antworten »

Ist dir klar, wie im ersten - beschriebenen - Schritt der Mittelpunkt des Kreises bestimmt wird?
Im 2. Schritt setzt man den Pol (P) in die Spaltformel der Kreisgleichung ein und bekommt damit die Polare.
Dies ist die Gerade, die die beiden Berührungspunkte verbindet.
Je nachdem, in welcher Form die Kreisgleichung vorliegt - Koordinatenform oder Vektorgleichung - gestaltet sich die Polarengleichung entsprechend.

Wie weit reichen deine Kenntnisse dorthin?

mY+
Leopold Auf diesen Beitrag antworten »

Wenn ich das richtig verstanden habe, geht es hier um ein Programmierproblem. Man braucht also eine allgemeine Lösung. Damit das hier mal vorangeht, habe ich die Punkte a) und b) aus meiner Lösungsskizze einmal ausgeführt.

Die beiden Tangenten und mögen in Hessescher Normalform vorliegen:




Hier sind



die normierten Normalenvektoren von und und der Ortsvektor des gemeinsamen Punktes der beiden Tangenten. ist der Ortsvektor eines allgemeinen Geradenpunktes. Die Multiplikation bezeichnet das Standardskalarprodukt von Vektoren.

Die beiden Parallelenpaare im vorgegebenen Abstand sind dann




Leicht anders geschrieben:




Die beiden Gleichungen bestimmen ein lineares Gleichungssystem in den Koordinaten von . Man kann es mit der Cramerschen Regel lösen. Die Determinante des Systems ist

(die Matrix müßte noch transponiert werden, für die Determinante spielt das aber keine Rolle)

Für die Zähler der Brüche in der Cramerschen Regel erhält man



In sind alle Vorzeichenkombinationen bei erlaubt. Man muß aber für dieselbe Vorzeichenkombination wählen (zum Beispiel: erste Zeile +, zweite Zeile -). So bekommt man die Koordinaten des Mittelpunktes von jedem der vier Kreise:



Wichtig bei der ganzen Sache: Die Vektoren müssen anfangs normiert werden, sonst stimmt die ganze Sache nicht.

Mit Routinen für das Standardskalarprodukt und die Determinante läßt sich das übersichtlich programmieren.

Jetzt fehlt noch c) aus meiner Lösungsstrategie.
Herbie Auf diesen Beitrag antworten »
Kenne mich mit Vektorengleichungen nicht aus
Richtig, es handelt sich um eine Programmierproblem. Im Programmieren bin ich echt fit. Die Mathematik ist bei mir leider schon verstaubt, deshalb die Bitte um Hilfe.
Danke für die Lösung. Leider kenne ich mit Vektorengleichungen nicht aus!
Gruß Herbie
Leopold Auf diesen Beitrag antworten »

Wie soll man denn helfen, wenn du mit deinen Informationen nicht herausrückst? Du sagst, die Tangenten seien bekannt. Dann müssen sie dir doch in irgendeiner mathematischen Form vorliegen. Könntest du mal sagen, in welcher Form du die Geraden gegeben hast? Wenn dir die Fachbegriffe fehlen, dann gerne auch ein Beispiel.
Herbie Auf diesen Beitrag antworten »
Bekannte Zusammenhänge
Die Punkt-Steigungs-Form der Geraden P zu P1 liefert mir
y = m * x + n ; m = (yP - yP1) / (xP - xP1) ; n = y - m * x
Da der Radius r senkrecht auf dem gesuchten Punkt B1 steht, habe ich auch die Steigung
mr * m = -1
gegeben.
Da ich die Koordinaten von M oder auch P' nicht gegeben habe, suche ich nun eine Beziehung zum Punkt P, eventuell über die Polare oder den Einheitskreis, damit ich eine Funktionsgleichung für die Berechnung der Koordinaten von B1 erhalten.

Ich hoffe meine Laienhafte Formulierung hilft ein wenig weiter!

Danke Herbie
mYthos Auf diesen Beitrag antworten »

Bevor du auf die Berührungspunkte losgehst, hast du ZUERST den Mittelpunkt des Kreises zu bestimmen.
Das habe ich dir schon in einem meiner vorigen Beiträge erklärt. Hast du das gelesen (oder noch nicht ganz verstanden)?

Siehe auch den ersten Beitrag von Leopold (geometrische Umsetzung)!

Zitat:
Der gesuchte Mittelpunkt liegt auf den Parallelen zu PP1 und PP2 im Abstand r und auch auf PP3.

Der Radius r ist ja gegeben. Danach lasse die Polare walten, damit kriegst du alle weiteren Punkte.

EDIT:
Koordinatengleichung:
Im Falle M auf PP3 genügt bereits eine Parallele. Von den beiden Möglichkeiten nimmst du das zutreffende Vorzeichen:



mY+
Herbie Auf diesen Beitrag antworten »
Lösung gefunden und doch keine Lösung!
Ich stehe echt auf dem Schlauch!!!!!!!!!!!!!!!!!!!!!
Da ich leider kein Mathematiker bin, habe ich immer Probleme mit Lösungsansätzen ohne Bezug auf meine Zeichnung im Beitrag vom 7.01.2021. Mit Vektorrechnung habe ich mich auch nicht viel beschäftigt. Ich arbeite mit Gleichungen in Koordinatenform.

Ich weiß nicht ob es jemand interessiert, wie ich das Problem gelöst habe (Bezug zur Zeichnung vom 7.01.2021):
  1. Zuerst habe ich den Drehwinkel (Delta) der der Form mittels der Punkte P3, P berechnet.
  2. Danach habe ich alle Punkte P, P1, P2 um Punkt P3 gedreht, sodass P3 und P auf der positiven X-Achse liegen.
  3. Mittels P und P1 habe ich den Winkel Alpha bestimmt, mit dem ich dann xM mit Hilfe trigonometriescher Funktionen und r berechnet konnte. yM ist nach der Drehung gleich yP3 und yP .
  4. Mit Hilfe der Einheitskreis-Funktionen konnte ich dann xB1/yB1 und xB2/yB2 berechnen.
  5. Zum Schluss drehte ich dann die Koordinaten von B1 und B2 um den im ersten Schritt gewonnen Drehwinkel auf die gesuchte Positionen.
Eine Lösung ist also vorhanden, mich ärgert aber, dass ich das Problem nicht mittels Gleichsetzungen gelöst bekomme. Mir sind inzwischen viele Sachverhalte klar. Ich kann jedoch nichts mit der "Polaren" anfangen.
Ich fasse mal laienhaft das Bekannte zusammen:
  1. Ich kann xB1/yB1 über die Geradengleichungen von P und P1 bestimmen.
  2. Ich kann xB2/yB2 über die Geradengleichungen von P und P2 bestimmen.
  3. Wie ich die Paralellen von P und P1 sowie P und P2 bekomme, finde ich sicher.
  4. Man kann xM/yM berechnen, indem man die Parallelen der Geradengleichungen von P, P1 und P, P2 gleichsetzt.
  5. Jetzt benötige ich scheinbar die Kenntniss der Polaren, die ich leider nicht besitze, um xB1/yB1 und xB2/yB2 zuberechnen.

Herbie
mYthos Auf diesen Beitrag antworten »

Du könntest zunächst mal hier die Boardsuche bemühen, einfach nur "Polare" (ohne Anführungszeichen) eingeben.
Da findest du das Knowhow, auch ohne Vektorgleichungen.

Ein Beispiel:
Gegeben ist der Kreis k (M; r): M = (2 | 1); r = 4 und ein Punkt P = (6 | 3)
Ges.: Tangenten von P an k, Berührungspunkte T1, T2

Kreisgleichung:
Polarengleichung (Spaltformel):

(Koordinaten des Pols P wurden in die Spaltform eingesetzt)
Diese Gerade (Polare) mit dem Kreis schneiden, das ergibt die Berührungspunkte.

mY+
Leopold Auf diesen Beitrag antworten »

Es ist schwierig, dir zu helfen, weil dir das Basiswissen aus der Analytischen Geometrie fehlt. Ich kann jetzt hier auch keinen Schnellkurs darin geben. Aber ich kann ein Beispiel machen. Lies einfach an den Zahlen ab, was zum Beispiel ein Normalenvektor ist. Ich rechne dir das vor. Ich gehe aus von dem, was du zu kennen scheinst: Geradengleichungen in der Form mit Steigung und y-Achsenabschnitt. Ich halte mich an die Bezeichnungen aus meinem Beitrag, in dem die Lösungsstrategie dargelegt wird, um den Mittelpunkt des gesuchten Kreises zu berechnen.




Ich bringe beide Gleichungen auf Normalform, d.h. auf die eine Seite, das konstante Glied auf die andere. Damit es schöner aussieht, multipliziere ich bei noch mit 3 durch (ist aber nicht erforderlich). Dann haben wir die folgenden Gleichungen:





Die erste Gleichung hat , die zweite als Normalenvektor. Meine Herleitung verlangt, daß die Normalenvektoren die Länge 1 besitzen. Im Moment haben sie die Längen und . Daher wird die erste Gleichung durch 5 und die zweite durch dividiert:





Jetzt haben wir alles zusammen, um meine Strategie umsetzen zu können. Hier die normierten Normalenvektoren:



In meinem Ansatz war ich davon ausgegangen, daß mit Ortsvektor der Schnittpunkt der beiden Geraden ist. Man braucht den aber nicht unbedingt, sondern kann gleich die rechten Seiten der Gleichungen ablesen:



Den Rest schreibe ich dir in einem Java-Pseudo-Code auf. Von den vier möglichen Varianten bei , die zu den vier möglichen Mittelpunkten führen, habe ich einmal die genommen mit + in der ersten und - in der zweiten Zeile der Determinanten.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
double determinante(double a,b,c,d) {

  return a*d-b*c;

}

punkt mittelpunkt(double n11,n12,b1,n21,n22,b2,r) {
  
  double delta, delta1, delta2, m1, m2;

  delta  = determinante(n11,n21,n12,n22);
  delta1 = determinante(b1+r,n12,b2-r,n22);
  delta2 = determinante(n11,b1+r,n21,b2-r);

  m1 = delta1/delta;
  m2 = delta2/delta;

  return (m1,m2);
  
}
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »