cs_miss2001
Messages postés2Date d'inscriptionlundi 6 mars 2006StatutMembreDernière intervention 7 mars 2006
-
6 mars 2006 à 13:17
Twinuts
Messages postés5374Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention 3 mars 2023
-
7 mars 2006 à 14:41
Salut a tous !
Je suis sur un problème depuis quelques temps...
Alors je dois faire un carré qui fait une rotation en fonction d ou est la souris. Je vous mets la partie du code que j ai fais parce que là je rame complétement, si quelqu'un pouvait m'aider ça serait vraiment très gentil
Twinuts
Messages postés5374Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention 3 mars 2023110 7 mars 2006 à 14:41
Ralalalala,
bon j'ai repris leurs code en supprimant deux trois choses et en activant l'anti aliasing
de plus j'ai ajouté un thread pour qu'il tourne automatiquement, je ne
peux pas faire plus simple apres pour l'application avec le
mouseDragged c'est a toi de voir comment tu peux adapter la chose :)
go pour le code
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.RenderingHints;
import java.awt.Shape;
import java.awt.geom.AffineTransform;
import javax.swing.JFrame;
public class Test extends JFrame {
private static final long serialVersionUID = 1802199483736051124L;
public Test() {
super("Test carre qui tourne");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(new Dimension(600, 600));
setLocationRelativeTo(null);
setContentPane(new MyCarre());
}
public static void main(String[] args) {
new Test().setVisible(true);
}
private class MyCarre extends javax.swing.JPanel implements Runnable{
private static final long serialVersionUID = 2230612553024085175L;
private AffineTransform at = new AffineTransform();
private int w, h;
//mieux pour le dessin
private Shape shape;
private boolean firstTime = true;
//angle de rotation
private int angle = 0;
public MyCarre() {
setBackground(Color.white);
shape = new Rectangle(0, 0, 100, 100);
//animation
new Thread(this).start();
}
private void renderShape() {
//application de la rotation
at.rotate(Math.toRadians(angle));
repaint();
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
//activation de l'anti aliasing pour eviter les escaliers