Bonjour
C'est mon premier dépos de probleme en Java
j'arrive bien a deplacer des objets graphique différent avec la souris
Mais quand j'essai de faire touner un objet graphique en fonction
de son angle donné en parametre avec la fonction "rotate" tous
les objets graphique son solidaire et tounent en meme temps
Pourquoi ?
voici un morceau du programme
merci de votre aide , le rotate est à la fin
import java.awt.*;
import java.awt.event.*;
import java.awt.Graphics;
import java.awt.Graphics2D;
impott java.applet.Applet;
import java.applet.*;
import java.sql.*;
import java.io.*;
import
java.io.BufferedReader;
import
java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import
java.util.StringTokenizer;
//******** debut du programme ************************
public class drag14 extends
Applet
implements
MouseListener, MouseMotionListener {
//*******************************************************
//******** dessin des objets *************************
//
******************************************************
public class Rectangle6 {
double x, y, longueur=0, hauteur=0,
profondeur=0, longueurT=0, largeurT=0, longueurG=0, largeurG=0;
double id=0 , an=0 , posi=0 , xip=0, yip=0;
String c , NomPrenom;
Color couleur;
// souris
String souris ;
boolean mouseDragged ,
mouseMoved;
boolean mouseClicked
,mousePressed ,mouseReleased , mouseEntered
, mouseExited;
// clavier
boolean keyPressed;
boolean up , down ;
String clavier
;
String direction;
Rectangle6(int valX, int valY, int valL, int
valH, int valP, String valCode, String valNomPrenom, int
valId, int Angle, int valLongG, int valLargeG, int
valLongT, int valLargeT, int valPosi, int valxip, int
valyip , boolean valmousePressed)
{
x= valX;
y= valY;
longueur=valL ;
hauteur= valH;
profondeur=valP;
longueurT=valLongT;
largeurT=valLargeT;
longueurG=valLongG ;
largeurG=valLargeG;
c = valCode;
NomPrenom=valNomPrenom;
id=valId;
an =Angle;
posi=valPosi ;
xip=valxip ;
yip=valyip ;
mousePressed= valmousePressed;
}
void setPosition(double valX, double valY){
x = valX;
y = valY;
}
boolean estDans(double valX, double valY){
return
((x<=valX)&&(x+longueur>=valX)
&&(y<=valY))&&(y+hauteur>=valY);
}
void dessiner(Graphics g) {
int i=1;
String exId1 = c.substring(0, 1);
String exId2 = c.substring(0, 2);
String exId3 = c.substring(0, 3);
String BL, BT, BA;
// repositionnement pour les objets non
déplacées
if (x==0 && y ==0)
{
x=xip;
y=yip+posi;
}
Color couleurF;
Color couleurB=Color.blue;
Color couleurT=Color.red ;
// g.setColor(new Color(200, 12, 25));
if
(mousePressed==true)
couleurF=Color.cyan;
else
couleurF=Color.yellow;
// g.setColor(new Color(200, 12, 25));
if
(mousePressed==true)
couleurF=Color.yellow;
else
couleurF=Color.yellow ;
//**********************************************************************
//******** rotation
******************************************************
Graphics2D g2 = (Graphics2D)
g;
g2.rotate(an* Math.PI /
180.0, (x+(longueur)/2),(y+(hauteur)/2) );
{
g.setColor(couleurF);
g.fillRect((int)x, (int)y,
(int)longueu
r, (int)hauteur);
g.setColor(couleurB);
g.drawRect((int)x, (int)(y) ,
(int)longueur, (int)2);
}
}
}