Schachbrett muster - ursprung nicht links sondern rechts

swany

Mitglied
Hallo,

ich habe hier eine Art 2D schachbrettmuster programmiert. Allerding ist der Ursprung oben links. ich würde ihn aber gerne oben rechts haben wollen. wie geht das?

Und meine 2 frage wäre, wenn ich das erste quadrat blau haben wollen würde und das zweite z.B. rot.... muss ich dafür jedes Quadrat quasi eigen erschaffen und füllen? Oder geht das auch anders? weil, wenn man jedes Quadrat eigen erzeugen muss.... ist man ja morgen noch nicht fertig....

PHP:
package tests;
import java.awt.*;
import java.awt.event.*;
/**
 *
 * @author Uni_2
 */
class Simple2DWindow extends Frame {
    class SimpleGraphics extends Canvas {
        
        public void paint(Graphics g){
            g.setColor(Color.green);
            int width=50;
            int height=50;
            int xgap=50;
            int ygap=50;
            for (int i=0; i<12; i++)
                for (int j=0; j<15; j++){
                    g.drawRect(j*xgap,i*ygap, width, height);
                }
        }
    }
    Simple2DWindow(){
        add("Center", new SimpleGraphics());
        
        addWindowListener(new WindowAdapter(){
            public void windowClosing(WindowEvent e){
                System.exit(0);
            }
        });
        setTitle ("SimpleGraphics");
        setSize(300, 200);
        setVisible(true);
    }
    public static void main (String[] args){
        new Simple2DWindow();
        
            }
        }
 
Hi !
Dein Fenster ist laut Code-Beispiel 300 Pixel breit. Willst du nun den Urpsrung oben links haben, dann musst du deine X-Koordinate einfach so berechenen :

PHP:
neuX = 300 - altX;

Für den X-Wert 0 ergibt das 300, für den X-Wert 300 ergibt das 0 ;-)

Willst du das ganze Koordinaten-System deines Graphics-Objekts ändern kannst du auch die Klasse AffineTransform nutzen. Damit hättest du noch ganz andere Möglichkeiten (Rotation, Verschiebung, Scherung).

Grüße,
Krösi
 
Zurück