Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Koordinaten auf Ebene projezieren (https://www.delphipraxis.net/105085-koordinaten-auf-ebene-projezieren.html)

kurtm1 15. Dez 2007 13:30


Koordinaten auf Ebene projezieren
 
Ich möchte eine grafische Übersicht von GPS Satelliten realisieren.

Von den Satelliten sind Azimuth und Elevation, sprich die Grad wo der Satellit derzeit am Himmel steht bekannt. Diese sollen jetzt in einem Kreis (=Himmel) eingetragen werden.
Wie kann ich die Gradpositionen in einen Koordinatensystempunkt umwandeln, so dass folgendes dargestellt werden kann?

http://www.wolfgang-back.com/Bilder/...satelliten.jpg

sirius 15. Dez 2007 13:44

Re: Koordinaten auf Ebene projezieren
 
*die verstaubten astronomischen Kenntnisse auskram*
Reicht es nicht wenn du den Azimuth einfach linear vom Mittelpunkt weg abträgst und die Elevation linear als Winkel an diesem Mittelpuntk anträgst?
Ansonsten musst du halt den Cosinus des Azimuth nehmen, der drüfter dann stimmen.

kurtm1 15. Dez 2007 22:06

Re: Koordinaten auf Ebene projezieren
 
ok und hast du vielleicht ein Beispiel dafür, wie das dann mit den Canvas Funktionen realisierbar ist?

snow 22. Dez 2007 11:29

Re: Koordinaten auf Ebene projezieren
 
Du brauchst erst mal die unit math einbinden.

Dann musst du ein Timage(oder etwas anderes auf dem du einen Canvas machen kannst erstellen)

Dann musst du dir folgendes klar machen.

ein punkt auf den du mit canvas zeichnest ist relativ zum Nullpunkt des Images. Allerdings ist der punkt (0|0) in der oberen linken ecke. wenn du also einen zentrierten Nullpunkt haben willst musst du jede koordinate um die hälfte der Imagebreite und um die Hälfte der Image höhe verschieben.

X:=X+Image1.Width/2;
Y:=Y+Image1.Width/2;


ICh hab zwar keine Ahnung von Astronomie aber. Wenn du dich als Mittelpunkt haben willst brauchst du dann nicht einfach nur den winkel des satelliten relativ zu dir zu wissen und die entfernung des satelliten? Eine 3. Dimension kannst du auf einem 2D Canvas nicht einzeichnen. Du könntest die 3. Koordinate lediglich als TextOut angeben. Ähnlich beim flugzeugradar. Du siehst das object und neben dem object steht die höhe, bzw bei dir der vertiale Winkel.

Gruß snow

snow 22. Dez 2007 11:29

Re: Koordinaten auf Ebene projezieren
 
Die befehle für einen Kreis lauten

canvas.Ellipse(X1,Y1,X2,Y2); //X1,X2,Y1,Y2 sind die punkte des rechteckes in das die ellipse gezeichnet wird. Kreise sind Quadrate.

canvas.textout(X,Y,string);
Mit canvas.brush.color kannste die farbe ändern.

Der rest ist Mathematik.

Gruß Snow


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:29 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