AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Umrechnung von Weltweite Koordinaten zu Pixel
Thema durchsuchen
Ansicht
Themen-Optionen

Umrechnung von Weltweite Koordinaten zu Pixel

Ein Thema von gangs-taas · begonnen am 25. Sep 2009 · letzter Beitrag vom 27. Sep 2009
Antwort Antwort
Seite 1 von 2  1 2      
gangs-taas

Registriert seit: 24. Mär 2009
364 Beiträge
 
#1

Umrechnung von Weltweite Koordinaten zu Pixel

  Alt 25. Sep 2009, 23:14
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 ?
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Umrechnung von Weltweite Koordinaten zu Pixel

  Alt 25. Sep 2009, 23:56
Das hat nicht zufällig was mit dem Bundeswettbewerb Informatik zu tun?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Umrechnung von Weltweite Koordinaten zu Pixel

  Alt 26. Sep 2009, 00:35
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
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#4

Re: Umrechnung von Weltweite Koordinaten zu Pixel

  Alt 26. Sep 2009, 00:38
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

@Luckie: Doch, das geht schon. Zumindest wenn man nur einen sehr kleinen Teilausschnitt betrachtet - die Verzerrungen bleiben da noch im Rahmen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Umrechnung von Weltweite Koordinaten zu Pixel

  Alt 26. Sep 2009, 00:48
Ich habe nicht gesagt, dass es nicht geht. Ich habe nur das Problem aufgezeigt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Umrechnung von Weltweite Koordinaten zu Pixel

  Alt 26. Sep 2009, 00:49
Zitat von Luckie:
Ich habe nicht gesagt, dass es nicht geht. Ich habe nur das Problem aufgezeigt und das es nicht so einfach ist.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#7

Re: Umrechnung von Weltweite Koordinaten zu Pixel

  Alt 26. Sep 2009, 01:02
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
  Mit Zitat antworten Zitat
Benutzerbild von TonyR
TonyR

Registriert seit: 17. Jun 2006
Ort: Bautzen
503 Beiträge
 
FreePascal / Lazarus
 
#8

Re: Umrechnung von Weltweite Koordinaten zu Pixel

  Alt 26. Sep 2009, 10:01
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
Es ist unmöglich, witzig zu sein ohne ein bisschen Bosheit. Die Bosheit eines guten Witzes ist der Widerhaken, der ihn haften lässt. - Georg Christoph Lichtenberg
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#9

Re: Umrechnung von Weltweite Koordinaten zu Pixel

  Alt 26. Sep 2009, 10:29
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
  Mit Zitat antworten Zitat
gangs-taas

Registriert seit: 24. Mär 2009
364 Beiträge
 
#10

Re: Umrechnung von Weltweite Koordinaten zu Pixel

  Alt 26. Sep 2009, 12:13
Zitat von NamenLozer:
Das hat nicht zufällig was mit dem Bundeswettbewerb Informatik zu tun?
doch hattest aber mein lehrer meinte ich darf ruhig fragen wenn ich nicht weiter weiß
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 03:18 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