Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Umrechnung von Weltweite Koordinaten zu Pixel (https://www.delphipraxis.net/140776-umrechnung-von-weltweite-koordinaten-zu-pixel.html)

gangs-taas 25. Sep 2009 22:14


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:
    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;
die Splate 1 beinhaltet mien x wert und die Spalte 2 meine y wert...

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 ?

Namenloser 25. Sep 2009 22:56

Re: Umrechnung von Weltweite Koordinaten zu Pixel
 
Das hat nicht zufällig was mit dem Bundeswettbewerb Informatik zu tun? :angel2:

Luckie 25. Sep 2009 23:35

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: http://de.wikipedia.org/wiki/Mercator-Projektion

jfheins 25. Sep 2009 23:38

Re: Umrechnung von Weltweite Koordinaten zu Pixel
 
http://de.wikipedia.org/wiki/Lineare..._Interpolation

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.

Luckie 25. Sep 2009 23:48

Re: Umrechnung von Weltweite Koordinaten zu Pixel
 
Ich habe nicht gesagt, dass es nicht geht. Ich habe nur das Problem aufgezeigt. ;)

Luckie 25. Sep 2009 23:49

Re: Umrechnung von Weltweite Koordinaten zu Pixel
 
Zitat:

Zitat von Luckie
Ich habe nicht gesagt, dass es nicht geht. Ich habe nur das Problem aufgezeigt und das es nicht so einfach ist. ;)


jfheins 26. Sep 2009 00:02

Re: Umrechnung von Weltweite Koordinaten zu Pixel
 
Zitat:

Zitat von Luckie
Ich habe nicht gesagt, dass es nicht geht. Ich habe nur das Problem aufgezeigt. ;)

Und ich habe nur gesagt, dass dieser "OMG, Die Erde ist keine Scheibe"-Effekt bei einer Kartenfläche von 2,6 Quadratkilometern noch keine nennenswerten Auswirkungen hat - ergo rühren seine Probleme nicht daher :stupid:

TonyR 26. Sep 2009 09:01

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

jfheins 26. Sep 2009 09:29

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 ;)

gangs-taas 26. Sep 2009 11:13

Re: Umrechnung von Weltweite Koordinaten zu Pixel
 
Zitat:

Zitat von NamenLozer
Das hat nicht zufällig was mit dem Bundeswettbewerb Informatik zu tun? :angel2:

doch hattest aber mein lehrer meinte ich darf ruhig fragen wenn ich nicht weiter weiß :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:02 Uhr.
Seite 1 von 2  1 2      

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