|
|
\require{AMSmath}
Berekenen index van een ruit gegeven een coordinaat
Ik ben bezig met het programmeren van een spel, dit spel bevat een speelbord wat bestaat uit allemaal vierkantjes die 45 graden zijn gekanteld en iets naar achteren zijn geheveld. Daardoor ontstaat het idee dat het bord 3d is. Elk vakje ziet er voor de gebruiker nu uit als een ruit, in dit geval 20 hoog en 48 breed. Nu wil ik weten als een gebruiker klikt op het speelbord op welk vakje hij geklikt heeft. De enige gegevens die ik terugkrijg zijn de coordinaten op het scherm. Hoe zet ik deze coordinaten van het scherm om naar de index van het speelbord? Bijvoorbeeld vakje 1 van links en vakje 2 van boven? Voorbeeld op http://www.gamedev.net/reference/articles/taniso/MapIso.gif Gr. Floran
Floran
Student hbo - woensdag 21 april 2004
Antwoord
Dag Floran, De grenslijnen van je ruitjespatroon zijn allemaal te beschrijven met een (lineair) verband tussen de schermcoördinaten, dus: y = a·x + b waarbij a de helling is, en b de verticale afsnijding. De lijnen van linksonder naar rechtsboven horen allemaal bij eenzelfde positieve waarde van a, die van rechtsboven naar linksonder hebben een waarde die hier juist aan tegengesteld is. Bepaal nu eerst hoe groot jouw a is. Stel dat deze waarde 0.5 is. Bepaal vervolgens welke b-waarden er bij de lijnen horen. Stel dat dit het volgende lijstje oplevert: 0, 100, 200, 300, enz. Neem nu het punt met coördinaten (356, 719) Bereken dan y - 0.5·x = 541 en y + 0.5·x = 897 Dan weet je dus dat dit punt ligt tussen de volgende vier lijnen: y - 0.5·x = 500 y - 0.5·x = 600 y + 0.5·x = 800 y + 0.5·x = 900 en dan weet je ook het vakje. Ik hoop dat je hier even mee verder kunt. succes, groet,
|
Vragen naar aanleiding van dit antwoord? Klik rechts..!
vrijdag 23 april 2004
|
|
home |
vandaag |
bijzonder |
gastenboek |
statistieken |
wie is wie? |
verhalen |
colofon
©2001-2024 WisFaq - versie 3
|