Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Wie Länder auf Karte einfärben? (https://www.delphipraxis.net/104127-wie-laender-auf-karte-einfaerben.html)

Torpedo 27. Nov 2007 19:59


Wie Länder auf Karte einfärben?
 
Hallo,
ich habe ein Problem und weiß nicht wie ich es lösen könnte. Quellcode habe und brauche ich nicht, ich möchte nur wissen, wie man sowas umsetzen könnte.

Das Problem ist, dass ich z.B. eine Karte von Europa habe, bei der die Grenzen eingezeichnet sind. Außerdem habe ich eine Liste von Ländern.
Zum Beispiel:
Deutschland 10
Österreich 4
Italien 2
Frankreich 20
....

Wie könnte ich jetzt die Länder auf der Karte je nach Zahl einfärben. Also 20=rot, 10=weniger rot, 4=noch weniger rot,....
Das Problem ist nicht die Farbe zu berechnen, sondern diese in die Karte einzuzeichnen. Wie kann ich nur ein Land einfärben und das möglichst schnell und ressourcenschonend?
Ich habe daran gedacht, dass man jedes Land als einzelnes Bild einfärben und später zusammenfügen könnte, oder für jedes Land eine Bit-Maske anzulegen und damit nur das gewünschte Land zu bemalen. Diese beiden Möglichkeiten würden aber pixelige Ränder erzeugen, was ich nicht möchte.

Hat jemand eine bessere Idee?

mkinzler 27. Nov 2007 20:00

Re: Wie Länder auf Karte einfärben?
 
Eine karte mit den Grenzen und pro Land eine Karte, welche dan alphageblendet wird.

Phoenix 27. Nov 2007 20:01

Re: Wie Länder auf Karte einfärben?
 
Wenn Du die Karte aus Polygonen zusammensetzen kannst, würde sich zum Einfärben der Scanline-Algorithmus empfehlen.

Nikolas 28. Nov 2007 08:01

Re: Wie Länder auf Karte einfärben?
 
Wenn du die Grenzen schon hast, könntest du doch floodfill einsetzen.

OregonGhost 28. Nov 2007 09:53

Re: Wie Länder auf Karte einfärben?
 
Zitat:

Zitat von Torpedo
Diese beiden Möglichkeiten würden aber pixelige Ränder erzeugen, was ich nicht möchte.

Wenn es nur daran scheitert: Ein einfacher Glättungsalgorithmus dürfte die pixeligen Ränder verschönern.


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