![]() |
Umrechnung von Weltweite Koordinaten zu Pixel
Hey,
ich muss euch nochmal etwas fragen also ich habe ein Bild und auf von diesem Bild hab ich die Koordinaten von dem Punkt Links-Oben und die von dem Punkt unten Rechts so und nun möchte ich andere Koordinaten auf diesem Bild einzeichnen ... dafür muss ich die ja von Grad zu Pixel umrechnen (also von z.b. 50°N zu Pixel.x := 250 oder so) so und hierbei passiert mir irgendwo ein fehler ... aber ich weiß nicht wieso ... bzw wo ... also mein bekannten Koordinaten sind : Oben links: N50.782000 E6.071100 Unten rechts: N50.771600 E6.091800 und mein Bild (Karte) ist 986*767 pixel groß also hab ich mir gedacht ich muss von den Koordinaten, die ich einzeichen möchte erst einmal -77160 bzw -71100 und teile es dann mal Grad/Pixel oder ? also ich hab das so gemacht :
Delphi-Quellcode:
die Splate 1 beinhaltet mien x wert und die Spalte 2 meine y wert...
For i := 0 to (High(Koordinaten)) do
begin Koordinaten[i,1] := Copy(Koordinaten[i,1],4); // ich hab Turbo Delphi deswegen geht z.b. das hier ... Koordinaten[i,1] := IntToStr(StrToInt(Koordinaten[i,1]) - 771600); Koordinaten[i,1] := IntToStr(Round(StrToInt(Koordinaten[i,1]) * (104/767))) ; // in Grad / Pixel end; For i := 0 to (High(Koordinaten)) do begin // Fehler in diesem Block da meine Pixel-Koordinaten größer als meine Gesamtpixel des Bildes Koordinaten[i,2] := Copy(Koordinaten[i,2],3); Koordinaten[i,2] := IntToStr(StrToInt(Koordinaten[i,2]) - 071100); Koordinaten[i,2] := IntToStr(Round(StrToInt(Koordinaten[i,2]) * (207/968))) ; // in Grad / Pixel end; end; so das Problem ist nur, dass mein Y wert nach dem Umwandeln größer ist, als die Gesamte Anzahl an Pixeln... z.b. ist ein Y wert nach dem Umwandlen 1600 obowhl ich doch eigl. nur 767 Pixel in der Höhe zur verfügung hab... versteht ihr mein Problem ? könnt ihr mir Zeigen wo mein Denkfehler ist ? |
Re: Umrechnung von Weltweite Koordinaten zu Pixel
Das hat nicht zufällig was mit dem Bundeswettbewerb Informatik zu tun? :angel2:
|
Re: Umrechnung von Weltweite Koordinaten zu Pixel
Das Problem ist, dass man eine Kugel nicht so einfach zweidimensional abbilden kann. Entweder hat man eine winkeltrue oder eine flächentreue Darstellung. Das heißt, du kannst die Koordinaten nicht so einfach linear in Pixel umrechnen. Zum tieferen Verständnis guck dir mal diese Seite bei Wikipedia an:
![]() |
Re: Umrechnung von Weltweite Koordinaten zu Pixel
![]() Die Formel da triffts eigentlich schon ganz gut. Du hast die Pixel (y- bzw. Funktionswerte) und die Koordinate (X-wert) Formel hernehmen, einsetzen fertig :stupid: @Luckie: Doch, das geht schon. Zumindest wenn man nur einen sehr kleinen Teilausschnitt betrachtet - die Verzerrungen bleiben da noch im Rahmen. |
Re: Umrechnung von Weltweite Koordinaten zu Pixel
Ich habe nicht gesagt, dass es nicht geht. Ich habe nur das Problem aufgezeigt. ;)
|
Re: Umrechnung von Weltweite Koordinaten zu Pixel
Zitat:
|
Re: Umrechnung von Weltweite Koordinaten zu Pixel
Zitat:
|
Re: Umrechnung von Weltweite Koordinaten zu Pixel
Müsste es dann nicht folgendermaßen gehen, oder habe ich einen Denkfehler?
Code:
[für die X-Werte]
1 px = 6,0711 986 px = 6,0918 ===> d 985 px = d 0,0207 {6,0918-6,0711} -- div 985 -- d 1 px = d (0,0207 / 985) ... "d" für DELTA, Differenz --- und für die Y-Werte entsprechende Vorgehensweise |
Re: Umrechnung von Weltweite Koordinaten zu Pixel
Naja, die Pixel fangen wahrscheinlich bei (0|0) an ...
Also für die X-Koordiante: X_Pixel := 0 + (E_Koordiante - 6.0711) * (986 - 0) / ( 6.0918 - 6.0711) Vereinfacht sich zu: X_pixel := (E_Koordinate - 6.0711) * 47632.85024 Soweit zumindest die Mathematik - das korrekte Parsen der Eingabedaten mag ich die hier jetzt nicht abnehmen ;) |
Re: Umrechnung von Weltweite Koordinaten zu Pixel
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 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 by Thomas Breitkreuz