Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Normale Ellipse (https://www.delphipraxis.net/188468-normale-ellipse.html)

Bjoerk 7. Mär 2016 09:15


Normale Ellipse
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich muß ein Rechteck normal zu einer Ellipse zeichnen. Hierzu brauche ich den Winkel Beta (Siehe Skizze). Wie jeht das nochmal? :oops:

CarlAshnikov 7. Mär 2016 11:32

AW: Normale Ellipse
 
Wenn ich das richtig verstehe, musst du die Tangente an der Ellipse berechnen und kannst dir aus der Senkrechten dazu den Winkel bestimmen.

Hier steht wie man die Tangente berechnet: http://www.mathematische-basteleien.de/ellipse.htm

Bjoerk 7. Mär 2016 12:51

AW: Normale Ellipse
 
Ok. Dank dir für den Link. Nehmen wir eine Ellipse, sagen wir a= 160 und b = 80. Für phi = 30° erhalten wir den Punkt (104,744587, 60.474136). Wir kontrollieren 104,744587^2/160^2+60.474136^2/80^2 = 1. Stimmt. Aber, wie lautet die Tangentengleichung? Will heißen, wer sagt uns was xx1 und yy1 ist? Oder bin ich grad zu dämlich..:cyclops:

CarlAshnikov 7. Mär 2016 14:52

AW: Normale Ellipse
 
Ich verstehe das so:

Die Tangentengleichung ist eine Geradengleich also eine Funktion y = f(x). x1 und y1 ist der Punkt an dem die Tangente an deiner Ellipse anliegt also x1 = 104,744587, y1 = 60.474136. xx1/a²+yy1/b²=1 eingesetzt ergibt sich: (x * 104,744587) / 160² + (y * 60.474136)/ 80² = 1. Kann man jetzt nach y umstellen und hat die Tangente. Ist jemand anderer Meinung? :-D

Du könntest auch über die Ableitung gehen: y'=-(b²x)/(a²y). Damit kann man auch den Anstieg der Ellipse in einem Punkt ausrechnen.

Uwe Raabe 7. Mär 2016 16:16

AW: Normale Ellipse
 
Die Steigungsform der Geradengleichung versagt leider an den Winkeln 0° und 180° und wird ungenau im angrenzenden Bereich. Ich verwende deshalb gerne die Normalform
Delphi-Quellcode:
A*x + B*y + C = 0
. Sei dann die Ellipse definiert durch
Delphi-Quellcode:
(x/A)² + (y/B)² = 1
, dann kann man meine bereits vor Äonen geschriebene Funktion verwenden:

Delphi-Quellcode:
function TangEllipse(A, B, X, Y: Extended; out A1, B1, C1: Extended): Boolean;
{ berechnet die Werte für eine Tangente an die Ellipse (A,B) im Punkt P(X,Y)
  result : -1 für Fehler
  0 für OK }
begin
  if IsZero(A) or IsZero(B) then begin
    result := false
  end
  else begin
    A1 := X / Sqr(A);
    B1 := Y / Sqr(B);
    C1 := -1;
    result := true;
  end;
end;

Bjoerk 7. Mär 2016 18:33

AW: Normale Ellipse
 
Liste der Anhänge anzeigen (Anzahl: 1)
OK. Ich dank euch. Hatte es jetzt schon über die Brennpunkte gelöst. Ums mir klarzumachen hab ich eine kleine Animation dafür geschrieben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:06 Uhr.

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