Iso-Grafik

Previous topic - Next topic

Shogun

Hallo alle zusammen,
besch?ftige mich gerade mit ISO-Grafik. Habe im Inet eine Seite gefunden die sehr sch?n beschreibt was da genau passiert, allerdings f?r C++. Jetzt m?chte ich es in GLBasic umsetzen. Schranzor?s Beispiel sieht ja folgenderma?en aus:

for x = ....
for y = ....

w=72
h=36
w2=w/2
h2/h/2

posx=w2*(x-y)-w2
posy=h2*(x+y)

verstehe ich soweit, bis auf das (x-y) und das (x+y), das verstehe ich nicht.
Ich wei? nicht wie ich die einzelnen Ziffern der Schleife in die Variablen einsetzen muss damit es Sinn macht.

Das Beispiel, das ich gefunden habe sieht folgenderma?en aus
es sagt f?r X: gerade Zeilen ganz nach links ungerade eine halbe Feldbreite nach rechts zeichnen
es sagt f?r Y: jede neue Zeile wird um eine halbe Feldh?he nach unten verschoben

Das verstehe ich, nur wie kann ich das in GLBasic umsetzen, also ungerade und gerade Zeilen ansprechen?

Freu mich ?ber jede Hilfe.





amarliani

Soweit ich das verstanden hab, sind x und y hier die tats?chlichen Koordinaten des Punktes, wo du gerade bist. Die Korrektur auf die halbe Feldh?he wg. der verschiebung wird hier durch die Multiplikation mit w2 und h2 gemacht. Siehe deren Definition in deinem Text weiter oben.

Shogun

Hast du auch weiter unten gelesen? Wie muss ich meine If Bedingung gestalten das ich zwischen ungerade und gerade unterscheiden kann?


amarliani

Sorry, hatt ich ?berlesen. Schlichte Modulo-Arithmetik:

IF MOD(x/2)=0

Wird 0 bei gerader und ungleich Null bei ungerader Zeilennummer.