![]() |
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:
|
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: ![]() |
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:
|
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. |
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:
. Sei dann die Ellipse definiert durch
A*x + B*y + C = 0
Delphi-Quellcode:
, dann kann man meine bereits vor Äonen geschriebene Funktion verwenden:
(x/A)² + (y/B)² = 1
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; |
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 07:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz