04. oktober 2001 - 13:47Der er
5 kommentarer og 1 løsning
Rotation!!!
Hey jeg vilel roterer noget så jeg gik ind og kiggede på sun side og fandt noget om rotation! Uh great!! Ud fra deres eksempel ville jeg så selv roterer noget, men kan ikke rigtigt få min firkant til det. Lige meget hvor jeg placere min repaint(); i koden vil den ikke roterer. kode: ------------------------------------------------------ import java.awt.*; import java.awt.event.*; import java.awt.geom.*; class Firkant extends Frame { AffineTransform at = new AffineTransform(); private int x; private int y; private int b; private int h;
public Firkant(int x, int y, int b, int h) {this.x=x;this.y=y;this.b=b;this.h=h;} public void tegnFirkant(Graphics g) { g.setColor(Color.lightGray); g.fillRect(x,y,b,h); for(int i=0;i<36;i++) { at.rotate(Math.toRadians(i));
}
} } public class rotate extends Frame { AffineTransform at = new AffineTransform();
public rotate() { super(\"Rotate Fætter\"); setSize(640,640);
show(); }
public void paint(Graphics g) { Firkant f1 = new Firkant(150,71,50,50); f1.tegnFirkant(g);
}
public static void main(String []args) {new rotate();} } Der er ingen repaint(); her for jeg ved ikke hvor jeg skal smide den.
Du skal huske at sætte den affine transformation i din løkke; ((Graphics2D)g).setTransform(at); dernæst skal du tegne objektet g.fillRect(x,y,b,h); Jeg har testet dit program med disse ændringer og det roterer firkanten.
Det var ikke det der stod oprindelig. Hvis du vil have at et enkelt objekt roterer skal du sørge for at din affine transformation har centrum i centrum af den figur du roterer. Du skal så huske at kalde translate(double,double) før du kalder rotate(double).
det du sagde med center er ikke nødvendigt. man kan bare sætte to ekstra koordinator på rotate altså rotate((...),x,y) hvor x,y er center af firkanten...
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.