C# Dessiner et bouger des objets

C# Dessiner et bouger des objets - C#/.NET managed - Programmation

Marsh Posté le 26-02-2003 à 09:31:37    

Salut !
 
J'ai trouvé comment dessiner des formes en C# avec un objet Graphics mais le problème c'est que pour déplacer une forme on est obligé de l'effacer puis de la redessiner, or si des formes se superposent, quand on en efface une, ça efface celle qui est en dessous aussi.
 
Connaissez vous un autre moyen de dessiner des objets et de les déplacer ? Est-ce qu'on peut placer un rond dans un panel, puis le déplacer ?
 
Merci pour vos idées...

Reply

Marsh Posté le 26-02-2003 à 09:31:37   

Reply

Marsh Posté le 26-02-2003 à 11:13:37    

Je connais pas vraiment .NET mais en général,  
soit tu crées des objets et après tu gères leurs propriétés (taille, position, etc.),  
soit tu dessines et là tu dois tout faire à la main (redessiner toute la scène avec les nouvelles positions).
En gros quoi.
 

Reply

Marsh Posté le 05-03-2003 à 23:48:36    

tu te fais une modélisation objet de tes données et ensuite tu choppes les mouseEvent pour pouvoir updater les coordonnées de tes objets. Avec l'event paint tu update tes objets et ca marche au poil.
 
Je travaille sur ca actuellement, et ca marche nickel.

Reply

Marsh Posté le 14-03-2003 à 14:34:21    

shinji a écrit :

Salut !
 
J'ai trouvé comment dessiner des formes en C# avec un objet Graphics mais le problème c'est que pour déplacer une forme on est obligé de l'effacer puis de la redessiner, or si des formes se superposent, quand on en efface une, ça efface celle qui est en dessous aussi.
 
Connaissez vous un autre moyen de dessiner des objets et de les déplacer ? Est-ce qu'on peut placer un rond dans un panel, puis le déplacer ?
 
Merci pour vos idées...


En gros tu as besoin d´un moteur de rendu de multiple layers. Et je crois que tu es bon pour l´écrire à la main..


---------------
Athlon64 s754 10*200MHz - R9800Pro - 512MB DDR200MHz - ZX6RR - Q2[SupOp] - Tutorial Video: multilangues, multisstitres
Reply

Marsh Posté le 20-03-2003 à 17:36:43    

salut :)
 
je travaille la dessus egalement et je debute en C#
 
est-ce que qqn pourrait m'expliquer comment transformer un cercle en objet ?
 
le but est de pouvoir selectionner ce cercle et par exemple le deplacer (drag and drop)
 
merci :jap:


---------------
L'informatique n'est pas une science exacte
Reply

Marsh Posté le 20-03-2003 à 21:23:27    

:bounce: svp :hello:


---------------
L'informatique n'est pas une science exacte
Reply

Marsh Posté le 24-03-2003 à 15:51:25    

Ben en gros ton rond sera une Image, comme tt tes autres layers.
 
Ensuite tu définis une classe Layer qui contient une Image (le rond) et une position..
 
Puis une classe MultipleLayer qui contient un array de Layer et des fonctions de rendu genre:
 

Code :
  1. public Image Draw();
  2. public Image Draw(Rectangle R_RefreshArea);


 
Si tu trouves qqe chose de tout fait, profites-en, sinon c pas bien dur.. :)

Reply

Marsh Posté le 24-03-2003 à 19:38:35    

:hello:  
 
tout d'abord merci pour ta reponse.
 
j'ai un peu de mal alors j'explique ce que j'ai fait :
 
j'ai créé dans la fenetre une zone de dessin "pictureBoxCreation".
ensuite dans le code du mainform j'ai :
 

Code :
  1. Graphics g = pictureBoxCreation.CreateGraphics();
  2. g.DrawEllipse(Pens.Black, X, Y, 180, 120); // avec (x,y le centre)


 
j'ai du mal à comprendre comment faire selon ta methode :??:
 
merci :jap:
 


---------------
L'informatique n'est pas une science exacte
Reply

Marsh Posté le 26-03-2003 à 16:30:02    

jfvde a écrit :

:hello:  
j'ai du mal à comprendre comment faire selon ta methode :??:


Hum je peux pas tt faire non plus!! ;)
 
Ben en gros ton code qui dessine une ellipse tu l´utilises pour créer une Image, que tu utilises ds un layer (image+position).
Comme ça tu as un layer que tu peux intégrer avec d´autres (CarréImage etc.. ;) ) dans un multiplelayer. Et tu peux les déplacer..
 
C bon??? :)

Reply

Marsh Posté le 26-03-2003 à 18:06:24    

je pense avoir compris :jap:
 
mais pour deplacer un layer, on doit l'effacer puis changer sa position et le réafficher à l'endroit souhaité ?


---------------
L'informatique n'est pas une science exacte
Reply

Marsh Posté le 26-03-2003 à 18:06:24   

Reply

Marsh Posté le 28-03-2003 à 15:29:02    

Tout dépend de tes fonctions de rendu multiple layers.
 
Ds le cas idéal, elles peuvent faire un refresh de tte la surface ds laquelle se baladent les layers, mais aussi juste d´un rectangle faisant partie de cette surface de rendu..
 
Dans ce cas, qd tu déplaces un layer, tu fais 2 refreshs, du rectangle recouvert par le layer avant, puis de celui après, ou bien tu en fait qu´un de la somme des 2 rectangles..

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed