Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Gleichung umformen (https://www.delphipraxis.net/178593-gleichung-umformen.html)

Bjoerk 16. Jan 2014 12:56

Gleichung umformen
 
Kann mir ja jemand mal bitte helfen? Ich suche den Schnittpunkt von Gerade und Ellipse.
Hierzu muß ich diese Formel (***) in eine ax^2 + bx + c Gleichung umformen. Ich schaffs nicht (mehr). :oops:

Delphi-Quellcode:
  XLine1, YLine1, XLine2, YLine2, // Rect Gerade
  aLine, bLine, // Geradengleichung
  XEllipse1, YEllipse1, XEllipse2, YEllipse2, // Rect Ellipse
  X, Y, // Mittelpunkt Ellipse
  aEllipse, bEllipse: double; // Ellipsengleichung
begin
  X := (XEllipse2 + XEllipse1) / 2;
  Y := (YEllipse2 + YEllipse1) / 2;
  aEllipse := (XEllipse2 - XEllipse1) / 2;
  bEllipse := (YEllipse2 - YEllipse1) / 2;
  XLine1 := XLine1 - X;
  YLine1 := YLine1 - Y;
  XLine2 := XLine2 - X;
  YLine2 := YLine2 - Y;
  bLine := YLine1 - XLine1 * (YLine2- YLine1) / (XLine2 - XLine1);
  aLine := -YLine1 / ((YLine2- YLine1) / (XLine2 - XLine1)) - XLine1;

  // Line(x, y) = x / aLine + y / bLine = 1;
  // -> y = bLine * (1 - x / aLine);

  // Ellipse(x, y) = x^2 / aEllipse^2 + y^2 / bEllipse^2 = 1;
  -> x^2 / aEllipse^2 + (bLine * (1 - x / aLine))^2 / bEllipse^2 = 1; // ***

Uwe Raabe 16. Jan 2014 13:35

AW: Gleichung umformen
 
Zunächst einmal bekommst du ein Problem, wenn die Gerade senkrecht (oder auch nur fast senkrecht) ist. Den Fall musst du abfangen.

Als Tip für die Ellipse: Du machst ja bereits eine Transformation so daß der Mittelpunkt der Ellipse den Nullpunkt darstellt. Wenn du jetzt noch eine Transformation machst, die eine Ellipse in einen Einheitskreis verwandelt, wird die Berechnung der Schnittpunkte (es gibt 0..2) einfacher. Nur nicht vergessen, am Ende wieder zurückzutransformieren.

Namenloser 16. Jan 2014 14:18

AW: Gleichung umformen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Schon lange keine Geometrieaufgabe mehr gerechnet, deshalb habe ich mich mal dran versucht. Habe aber nicht überprüft, ob es stimmt, ohne Gewähr...

Die Gerade wird angegeben durch einen Punkt, der auf der Geraden liegt (s), und einen Richtungsvektor (v). Der Kreis liegt im Ursprung und hat den Radius 1.

Bjoerk 16. Jan 2014 15:03

AW: Gleichung umformen
 
OK. Das hab ich ja auch befürchtet, daß man die Fälle 90/180° abfangen muß. Außerdem gibt's ja noch Pie und Arc Schnittpunkte zu berechnen. Dann lass ich's lieber so wie ich’s hab (Berechnung der Schnittpunkte für Ellipse und Co. temporär in Polygon umwandeln und IntersectLines). Thanx!

Namenloser 16. Jan 2014 19:19

AW: Gleichung umformen
 
Wenn man mit Vektoren rechnet (siehe meine Lösung), muss man nichts abfangen.

Chris211183 16. Jan 2014 20:07

AW: Gleichung umformen
 
es kommt immer darauf an, wie man die Koordinaten einer Geraden beschreibt, jede Gerade, ist im Unendlichen eine Kurve !
Ich würd es auch auch meinem Vorredner nachmachen, wobei man bei einer Ellipse darauf achten muss, dass ein kreis auch eine Ellipse ist :wink:

vielleicht hilft Dir das weiter...

Medium 17. Jan 2014 00:42

AW: Gleichung umformen
 
Zitat:

jede Gerade, ist im Unendlichen eine Kurve !
Hierzu würde ich gerne mal einen Beweis sehen. Nicht um überheblich zu klingen, sondern weil mich es echt interessieren würde. (Zumal ich erst kürzlich lernen durfte, dass ∑(i), i := 1 → ∞ = -1/12 ist. Völlig gegen jegliche Intuition, aber dennoch beweis- und anwendbar.)

Sir Rufo 17. Jan 2014 00:51

AW: Gleichung umformen
 
Zitat:

Zitat von Medium (Beitrag 1244044)
Zitat:

jede Gerade, ist im Unendlichen eine Kurve !
Hierzu würde ich gerne mal einen Beweis sehen. Nicht um überheblich zu klingen, sondern weil mich es echt interessieren würde. (Zumal ich erst kürzlich lernen durfte, dass ∑(i), i := 1 → ∞ = -1/12 ist. Völlig gegen jegliche Intuition, aber dennoch beweis- und anwendbar.)

Nimm dir einen beliebigen Punkt im Abstand ∞ zur Geraden.
Dann ist der Abstand von diesem Punkt zu jedem Punkt auf der Geraden auch ∞.
Daraus folgt, dass die Gerade in diesem Fall eine Kurve sein muss ;)

Oder andersherum, der Kurvenradius einer Geraden ist ∞

Medium 17. Jan 2014 01:05

AW: Gleichung umformen
 
Das würde ja voraussetzen, dass ∞ eine Zahl ist, mit der ich konkrete Abstandsbestimmungen durchführen könnte. Da aber doch selbst "∞-∞ := undefined" gilt (und jede andere triviale Operation mit ∞ als Operand ebenso), kann dies nicht wirklich der Beweis sein. Das muss anders gehen.
Sprachlich leuchtet die Begründung ein, aber selbst da ist es noch immer "nur" eine Begründung. Kein Beweis, wie ich ihn mir jetzt vorgestellt hatte. Ich würde hier gerne doch wirklich mathematische eindeutige Terminologie sehen, kein Deutsch.

Der Kurvenradius ist schon eine gute Sache, aber das sagt noch immer nicht, warum eine Gerade dann gerade in der Unendlichkeit erst eine Kurve ist. Die Strecke (0,0)(0,1) hat denselben Kurvenradius.

Sir Rufo 17. Jan 2014 02:48

AW: Gleichung umformen
 
Wenn die Gerade in der Unendlichkeit eine Kurve ist, dann sind die Teilmengen der Geraden (=Strecken) das ebenfalls ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:39 Uhr.
Seite 1 von 5  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz