AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Normale Ellipse

Ein Thema von Bjoerk · begonnen am 7. Mär 2016 · letzter Beitrag vom 7. Mär 2016
Antwort Antwort
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#1

Normale Ellipse

  Alt 7. Mär 2016, 09:15
Ich muß ein Rechteck normal zu einer Ellipse zeichnen. Hierzu brauche ich den Winkel Beta (Siehe Skizze). Wie jeht das nochmal?
Angehängte Dateien
Dateityp: pdf Ellipse Normale.pdf (35,7 KB, 38x aufgerufen)
  Mit Zitat antworten Zitat
CarlAshnikov

Registriert seit: 18. Feb 2011
Ort: Erfurt
108 Beiträge
 
Delphi XE5 Enterprise
 
#2

AW: Normale Ellipse

  Alt 7. Mär 2016, 11:32
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
Sebastian
Das kann ja wohl nicht var sein!
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Normale Ellipse

  Alt 7. Mär 2016, 12:51
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..
  Mit Zitat antworten Zitat
CarlAshnikov

Registriert seit: 18. Feb 2011
Ort: Erfurt
108 Beiträge
 
Delphi XE5 Enterprise
 
#4

AW: Normale Ellipse

  Alt 7. Mär 2016, 14:52
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?

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.
Sebastian
Das kann ja wohl nicht var sein!
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.009 Beiträge
 
Delphi 12 Athens
 
#5

AW: Normale Ellipse

  Alt 7. Mär 2016, 16:16
Die Steigungsform der Geradengleichung versagt leider an den Winkeln 0° und 180° und wird ungenau im angrenzenden Bereich. Ich verwende deshalb gerne die Normalform A*x + B*y + C = 0 . Sei dann die Ellipse definiert durch (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;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Normale Ellipse

  Alt 7. Mär 2016, 18:33
OK. Ich dank euch. Hatte es jetzt schon über die Brennpunkte gelöst. Ums mir klarzumachen hab ich eine kleine Animation dafür geschrieben.
Angehängte Dateien
Dateityp: zip DrawEllipse.zip (3,3 KB, 18x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:41 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