Zitat von Ich
*sing* Proportionalität. Wie oft predige ich im Technikforum diese einfachste aller mathematischen Formeln *g*
Was ist Proportionalität?
Zwei Werte verhalten sich proportional zueinander, wenn sie in gleichem Verhältnis zueiander stehen und im gleichen Verhältnis steigen und fallen. Beispiel: Ein Drachentöter tötet täglich drei Drachen. Zwei Drachentöter bringen dann logischerweise sechs Drachen zur Strecke. Drei Drachentöter bringen neun Drachen um. Die Anzahl der Drachentöter und die Anzahl der getöteten Drachen ist also proportional zueinander.
Was hat Proportionalität mit einer Minimap zu tun?
Alles! *heul* Denn die Minimap steht logischerweise in einem Verhältnis zur richtigen Map, es sei denn der Kartenzeichner hat Schluderarbeit getrieben ^^°
Du kennst auf Landkarten sicherlich unten in der Ecke immer das "1:10000" oder "1:1000000" usw. Das ist schonmal ein Hinweis darauf, dass wir es hier im Proportionalität zu tun haben! Im Maker ist das nix anderes.
Wie rechnet man mit Proportionalität?
Proportionale Werte sind Quotientengleich. Das heißt:
Die Anzahl der Drachentöter DURCH die Anzahl der getöteten Drachen hat IMMER das gleiche Ergebnis.
Beispiel: 3 Drachentöter töten 9 Drachen. 9 / 3 = 3
5 Drachentöter töten 15 Drachen. 15 / 5 = 3
Man kann also die Formel aufstellen
WertA / proportionalen Wert von A = Wert B / proportionalen Wert von B
Wie wendet man das auf eine Minimap an?
Bei der Minimap gilt: Eine Koordinate auf der Minimap ist proportional zu einer Koordinate auf der realen Map. Wir nehmen uns also eine bekannte Koordinate raus, um dort die Verhältnisgleichung aufzustellen. z.B. nehmen wir den rechten, unteren Pixel der MiniMap. Wenn die Minimap 100*100 Pixel groß ist, und sie wird auf den koordinaten 50*50 angezeigt (ein Picture wird immer an seiner mittlersten Koordinate angezeigt), dann müsste der rechte untere Pixel bei den Pixekoordinaten 100/100 sein.
Gehen wir davon aus das die Map 200*200 Felder groß ist.
Wir stellen jetzt also die Verhältnisgleichung auf:
Der 100te Pixel in X/Y-Richtung auf der Minimap verhält sich proportional zu dem 200ten Feld der Map in X/Y-Richtung
Nun stellen wir ein zweites Verhätlnis mit unbekannten Variablen auf. Wenn sich der unterste, rechte Pixel der Minimap zu dem untersten rechten Feld der Map verhält, muss folglich auch das Feld, auf dem sich der Held befindet, zu einem Pixel auf der Minimap verhalten. Dieses Verhältnis schreiben wir also nieder:
Der Unbekannte Pixel in X/Y auf der Minimap verhält sich proportional zu den bekannten koordinaten des Helden auf der realen Map.
Die beiden Verhältnisgleichung schreibt man nun mit = nebeneinander, da ihre Quotienten ja gleich sein müssten:
100 / 200 = Held_X_Minimap / Held_X_Mapkoordinate
100 / 200 = Held_Y_Minimap / Held_Y_Mapkoordinate
Wir kennen alle Werte (die Koordinaten des Helden kann man mit change Variable leicht herausfinden) und haben nur eine unbekannte Variable: Held_X_Minimap (bzw. Held_Y_Minimap). Nach diesen Variablen stellen wir die Formel um:
HELD_X_Minimap = (Held_X_Mapkoordinate * 100) / 200
HELD_Y_Minimap = (Held_Y_Mapkoordinate * 100) / 200
Und schon hat man die Pixelkoordinaten des aufenthaltsortes des Helden raus. Mit Show Picture zeigt man in diesen Koordinaten einen roten Punkt hin.
...