Repaint me flachouille les yeux O_o

Karibou95 Messages postés 13 Date d'inscription mardi 27 février 2007 Statut Membre Dernière intervention 17 octobre 2008 - 9 oct. 2008 à 15:24
cs_the0ne Messages postés 1 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 23 janvier 2011 - 23 janv. 2011 à 20:42
Bonjour,

je réalise un radar à l'aide d'un canvas et de thread ( et aussi à grâce aux personnes de ce forum qui mon beaucoup aidés :))

donc mon radar (canvas) à un fond noir et j'ai tracé des lignes pour faire un quadrillage en vert et j'ai un thread (avec un sleep(100)) qui me permet de faire une droite qui tourne ( comme les vrais radar).

le probleme c'est que le repaint de mon thread repaint aussi toutes les droites du quadrillages donc le quadrillage clignote en fond pendant que ma droite du radar tourne.

j'ai essayé de mettre differentes valeurs pour sleep mais le quadrillage clignote toujours autant :(

auriez vous une solution?


merci

3 réponses

cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
9 oct. 2008 à 16:23
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
9 oct. 2008 à 20:44
Salut:

Laurent >> +1

Ce type de problème d'affichage s'appelle "Flickering".
http://en.wikipedia.org/wiki/Flicker_(screen)

La technique de "Double-Buffering" est une solution efficace.
0
cs_the0ne Messages postés 1 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 23 janvier 2011
23 janv. 2011 à 20:42
Bonjour Utilise la méthode Suivant:

private int xCor[];
private int yCor[];
private int h=2;
private int k=2;
private Image im;
private Graphics buff;


public void run(){
for(i=0; i++){
xCor[i] =Math.sin((2*k)/100-h)*1000;
xCor[i] =Math.cos((2*k)/100-h)*1000;
}
while(true){
try{
Thread.sleep(35);
}
catch(Exception e){}
h=h+1;
k=k-1;
public void draw(Graphics g){
int green = 255;
for(int j = 0; j >100; j++){
if(j >= 0 ){
green -= 2;
buff.setColor(new Color(0, green, 0));
buff.drawLine(xCor[j], yCor[j], 300, 300);
}



il faut que tu dessin une Ligne avec la methode drawLine(int,int,int,int) en Utilisant Sinus et Cos Pour que Les Cordonne de la ligne Changent
c pas tres Precis mais c la meilleur methode
0
Rejoignez-nous