Archief - [PROG]a landkaart

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Denmilitair

Legacy Member
voor een projectje hebben we een landkaart nodig met de veschillende landen of een willekeurige kaart met landen maar je moet dus afzonderlijk op elk land kunnen klikken en bijv dat dat land da van kleur veranderd! Zoals in Risk

maar hoe zit da juist in mekaar? hoe implementeer je zoiets? want elk land geeft andere grenzen/vorm

iemand een idee hoe zoiets gemaakt wordt?

KeaTs

Legacy Member
met bitmaps? :unsure:

Als ge doelt op de selectie e.d. en ge wilt die pixel-perfect; een techniek die je kan gebruiken is hittests. Heel ruw uitgelegd: je rendert je landen allemaal met een unieke kleur naar een surface & registert de link tussen de kleur & het land ergens, dan bij een muisklik kijk je naar de kleur onder de cursor, en zo kan je in je tabel opzoeken welk land er onder je cursor zit.

Denmilitair

Legacy Member
bitmaps? es opzoeken dak weet wat dat is :)

ik heb dus ervaring met C/C#/C++/Java/VB.net/... maar dit concept nog nie tegengekomen

Bavo aka Joske

Legacy Member
Ik zou eerder shapes definiëren met de grenslijnen als een reeks coordinaten die de shape omvatten, en dan algoritmes maken die kunnen testen of een klik erin valt, en algoritmes die het kunnen uittekenen (mogelijk een mask overlayen op een graphic ofzo). Nuja, best complex.

Denmilitair

Legacy Member
in eerste instantie dacht ik aan een kaart als achtergrond en dan daar een 2de layer over die de gebieden verdeeld per land, maar hoe zoiets te doen, dat weet ik niet

Vich

Legacy Member
Denmilitair zei:
in eerste instantie dacht ik aan een kaart als achtergrond en dan daar een 2de layer over die de gebieden verdeeld per land, maar hoe zoiets te doen, dat weet ik niet

Komaan zeg, een beetje pro-actief denken is toch niet zó moeilijk?

De afbeelding moet je inderdaad als een achtergrond beschouwen. Daarbovenop ga je een virtuele (onzichtbare) laag maken die de gebieden definieert die je wil kunnen aanklikken.

Oplossingsmogelijkheid 1:
Je definieert elk gebied als 1 of meerdere driehoeken die dit gebied beschrijven. Als je een klik registreert met de muis, dan loop je door alle driehoeken van alle gebieden en kijk je of de muispositie in zo'n driehoek zit. (dat kan je met simpele driehoeksmeetkunde bepalen)

Oplossingsmogelijkheid 2:
Je maakt een 2de afbeelding aan en gaat de landkaart daarin natekenen. Elk gebied overteken je met 1 kleur en die kleur is uniek voor dat gebied(zoiets, maar dan zonder de tekst). Rood is bijvoorbeeld "Oost-Vlaanderen". Als je vervolgens klikt met je muis ga je kijken op welke positie er geklikt is. Vervolgens ga je in de ingekleurde afbeelding kijken welke kleur op die positie van die afbeelding zit. Als er een rood pixel onder ligt, dan weet je dat er op Oost-Vlaanderen is geklikt.

Ik zou voor oplossingsmogelijkheid 2 gaan.

Denmilitair

Legacy Member
die driehoeksmethode ga volgens mij niet gedetailleerd genoeg zijn, de 2de methode ziet er wel goe uit, bedankt alvast

Vich

Legacy Member
Denmilitair zei:
die driehoeksmethode ga volgens mij niet gedetailleerd genoeg zijn, de 2de methode ziet er wel goe uit, bedankt alvast

Dat kan kloppen, want hoe meer detail je wil, des te meer driehoeken je moet gaan definieren :P

Graag gedaan. Succes!

UniKorn

Legacy Member
Als het vaste vormen zijn heeft flood fill in mijn ogen niet veel nut.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan