Azimut ist die Himmelsrichtung (180° ist der Süden), Elevation der Betrachtungswinkel zu dem Objekt und Distanz ist die Entfernung. Da es sich eh um Punkte handelt, kann man letzteres im Prinzip auch vernachlässigen. Wie gesagt ich habe den aktuellen Azimut und die Elevation und möchte nun aus dem Vektor im Verhältnis zu meiner Kameraposition den 3D Bildpunkt rendern.
Delphi-Quellcode:
procedure rae2xyz(Range, Azimuth, Elevation: Single; out x, y, z: single);
begin
//http://en.wikipedia.org/wiki/Spherical_coordinate_system#Cartesian_coordinates
x := Range * sin(Elevation) * cos(Azimuth);
y := Range * sin(Elevation) * sin(Azimuth);
z := Range * cos(Elevation);
end;
Ich hab testweise x' = x/z und y' = y/z genommen, mit einem Faktor versehen und auf die Bildmitte gezeichnet. Im Prinzip habe ich vom Betrachter die Richtung in die er guckt und den Winkel in der das Telefon gehalten wird. Ich weiß das wäre Mathe Sekundarstufe 2, wenns bei mir nicht schon so lange zurück läge. Ist schon traurig wie viel man vergisst.