Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
708 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Rectangles pleins - [RESOLU]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Rectangles pleins - [RESOLU]

n°1041752
Le Roi New​bie
Posté le 10-04-2005 à 11:18:59  profilanswer
 

Salut tout le monde !!!
 
Désolé de vous poser des questions aussi ridicule mais je débute, et je n'ai pas trouvé de sujet abordant mon problème (il doit forcément en avoir au moins un mais on ne peut pas dire que je ne l'ai pas cherché).
 
Bon voilà mon problème : je veux tracer un rectangle plein. J'ai trouvé ces fonctions :  
void __fastcall Rectangle(0, 0, 25, 25);
void __fastcall Rectangle(FillRect Rect);
 
void FillRect(int x,int y,int w,int h,const Color& col);
 
DrawRect(400,10,100,50,Blue,3);
FillRect(Pixel(400,400),100,50,Green);
 
Mais voilà je sais pas comment les utiliser :lol: ! (un seul mot à dire : désolé)
Quelqu'un pourrait-il me donner un petit bout de programme pour que je sache comment faire, par exemple dessiner un rectangle tout vert dont deux sommets opposés sont (5;60) et (40;90).
 
MERCI D4AVANCE !!! :wahoo:


Message édité par Le Roi Newbie le 15-04-2005 à 17:42:54
mood
Publicité
Posté le 10-04-2005 à 11:18:59  profilanswer
 

n°1041763
Lam's
Profil: bas.
Posté le 10-04-2005 à 11:37:06  profilanswer
 

Quel environnement, quelle bibliothèque ?
(MFC, X11, C++ Builder, wxWidgets, SDL, Graphics.h, ?)

n°1041777
Le Roi New​bie
Posté le 10-04-2005 à 11:50:28  profilanswer
 

J'utilise C++ Builder.

n°1041780
Hrisson
Adrénaline Powered
Posté le 10-04-2005 à 11:51:48  profilanswer
 

Le Roi Newbie a écrit :

J'utilise C++ Builder.


Donc VSL :o
TForm powa :)


---------------
Topic trottinette Xiaomi
n°1041785
Le Roi New​bie
Posté le 10-04-2005 à 11:58:33  profilanswer
 

C'est très dur pour moi tout ça, je débute depuis le moi de janvier en programmation, et je dois faire un mini-projet informatique... mais voilà... je souffre !

n°1041821
Hrisson
Adrénaline Powered
Posté le 10-04-2005 à 12:27:12  profilanswer
 

IUT?


---------------
Topic trottinette Xiaomi
n°1041841
Le Roi New​bie
Posté le 10-04-2005 à 12:40:24  profilanswer
 

Non, ISAT (Nevers).

n°1042229
Le Roi New​bie
Posté le 10-04-2005 à 19:04:56  profilanswer
 

Sinon personne ne pourrait me donner les deux lignes de programme dont j'ai besoin ?
 
En remerciant d'avance.

n°1043180
fra0
Posté le 11-04-2005 à 16:26:39  profilanswer
 

ben si,
 
Canvas->Brush->Color=clGreen;
Canvas->FillRect(Rect(5,60,40+1,90+1));
 
l'aide est assez claire là dessus

n°1045733
Le Roi New​bie
Posté le 13-04-2005 à 13:14:37  profilanswer
 

Merci merci merci !!!!

mood
Publicité
Posté le 13-04-2005 à 13:14:37  profilanswer
 

n°1045917
HelloWorld
Salut tout le monde!
Posté le 13-04-2005 à 14:58:37  profilanswer
 


VCL [:aloy]


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°1046003
Le Roi New​bie
Posté le 13-04-2005 à 15:40:01  profilanswer
 

Et m**** !!!  
 
Ca va pas en fait : quand un objet image passe dessus, on revoit la partie d'image qui a été effacée (avec le rectangle blanc) car l'objet efface le rectangle et il réapparaît l'image en dessous.
On pourait pas mettre ce rectangle dessus mon image de fond (que je veux effacer partie par partie) et dessous l'image qui se déplace ???
Quelqu'un aurait-t-il une petite astuce pour moi ???
 
Merci de vous intéresser à mon problème.:)


Message édité par Le Roi Newbie le 13-04-2005 à 15:41:17
n°1046178
Le Roi New​bie
Posté le 13-04-2005 à 17:01:43  profilanswer
 

En plus clair, je voudrais :  
- effacer une partie d'une image grâce à un rectangle blanc
- que mon objet qui se déplace passe par-dessus ce rectangle blanc sans l'effacer

n°1046224
HelloWorld
Salut tout le monde!
Posté le 13-04-2005 à 17:13:38  profilanswer
 

Le Roi Newbie a écrit :

que mon objet qui se déplace passe par-dessus ce rectangle blanc sans l'effacer


ce qui signifie:

Citation :

que mon objet qui se déplace par-dessus ce rectangle blanc le cache sans le cacher


Quand ton objet qui est par dessus bouge, redessine le rectangle blanc avant de redessiner ton objet.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°1046267
Le Roi New​bie
Posté le 13-04-2005 à 17:25:56  profilanswer
 

En fait j'aimerais ne pas avoir à sauvegarder le nombre de rectangles qui ont été affichés ainsi que leurs coordonnées.
J'aimerais aussi ne pas avoir à retracer tous les rectangles pour ne pas faire ramer mon programme (surtout pour la régularité de la vitesse de l'objet).
 
En fait l'idéal serait de tracer une seule fois chaque rectangle et de pouvoir passer par dessus (oui oui très exigeant).
 
Merci de votre aide. :)

n°1046362
HelloWorld
Salut tout le monde!
Posté le 13-04-2005 à 17:50:38  profilanswer
 

Y'a pas de mystères, si tu redessines pas tes rectangles personne ne le fera.
Ce que tu peux faire, c'est dessiner tes rectangles dans un bitmap en mémoire, et dessiner ce bitmap puis ton objet déplaçable. Ainsi tu n'as pas à redessiner tes rectangles.
Autre possibilité : ton objet qui cache les rectangles sauvegarde la partie du dessin qu'il efface et la restaure ensuite.
Mais le bitmap offscreen me parrait meilleur. D'ailleurs, si tu ne redessines pas les rectangles, comment tu fais pour les affichers lorsque la fenêtre a besoin d'être redessinée ? (minimise/restore)


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°1046498
Le Roi New​bie
Posté le 13-04-2005 à 19:53:36  profilanswer
 

En effet, je viens d'essseyer minimise/restore et les rectangles disparraissent effectivement (là je me demande à quoi sa sert de les avoir fait tracer s'ils ne sont même pas conservés, il doit y avoir une notion qui m'échappe comme beaucoup d'ailleurs mais vous m'excuserez car je débute :) ).
 
Etant données les trajectoires de mon objet (qui rebondit), je pencherai plutôt pour la première solution.
 
Bon je pense avoir compris et je vais esseyer, je vous donne les résultats de mes ô grands talents de programmeur en herbe (oui oui c'est la canicule, il y a plus d'herbe).
 
GRAND MERCI !!!    ;)

n°1048152
Le Roi New​bie
Posté le 14-04-2005 à 23:19:07  profilanswer
 

Devinez quoi ?  
Ben ce qui devait arriver arriva...
...
je suis ENCORE planté.
 
Ca commence vraiment à m'énerver, j'y suis presque, j'ai plus que ça et c'est quasiment fini, en tout cas je sais comment je finirai le reste. Mais je suis bloqué sur cet effacement de partie d'image... gggggrrrrrrr mes nerfs flanchent !!!
Pis j'ai vraiment du mal avec l'aide, je comprends pas grand chose de ce qu'elle veut me dire. Elle a beau m'expliquer tout ce qu'elle veut je reste bloqué devant l'écran.
 
Tout ce que j'ai réussi à faire c'est ça (s'il vous plaît corrigez moi si je me suis déjà trompé ici):
 
 Graphics::TBitmap *Bitmap;
 Bitmap = new Graphics::TBitmap;
(pour créer mon bitmap sous le nom de Bitmap, c'est où qu'on met la taille du bitmap ???)
 
Canvas->Brush->Color=clWhite;
Canvas->FillRect(Rect(xx,yy,xx+50,yy+50));
(je voulais mettre Bitmap à la place de Canvas mais c'est pas bon car "symbole 'Bitmap' non défini" )
 
M'énerve, j'y arrive pas.
Bon je vais encore passer quelques heures dans l'aide en espérant recevoir la Révélation (une chose est sûre : c'est pas moi l'Elu).
 
J'espère qu'il y des gens très courageux ("des" je crois que c'est déjà un peu optimiste) et très patients qui pourront m'aider, et qui auront d'ailleurs eut le courage de me supporter jusqu'ici (ma mère m'a tout le temps dit que je suis chiant... bon on est d'accord là dessus)
 
Merci de votre aide.

n°1048154
Le Roi New​bie
Posté le 14-04-2005 à 23:20:49  profilanswer
 

Ah oui j'ai ça aussi :
Canvas->Draw(0,0,Bitmap); (yes yes yes !!!)

n°1048538
Le Roi New​bie
Posté le 15-04-2005 à 12:12:32  profilanswer
 

Quelqu'un pourrait-il m'aider j'ai presque réussi mais je ne comprends pas un petit truc :
 
J'ai mis ça dans mon __fastcall TForm1 :
 Graphics::TBitmap* Bitmap1 = new Graphics::TBitmap();
 Bitmap1 = new Graphics::TBitmap;
 Bitmap1->Width=800;
 Bitmap1->Height=400;
 
Et puis ceci dans un autre événement :
 Bitmap1->Canvas->Brush->Color=clWhite;
 Bitmap1->Canvas->FillRect(Rect(xx,yy,xx+50,yy+50));
 Canvas->Draw(50,50,Bitmap1);
Mais dans cet événement on me dit "Symbole 'Bitmap1' non défini".
 
Est-ce dû au fait que j'ai fait un copier-coller de cette ligne :  Graphics::TBitmap* Bitmap1 = new Graphics::TBitmap(); ?
 
Merci de s'intéresser à mon problème. :) :) :)
 

n°1048709
HelloWorld
Salut tout le monde!
Posté le 15-04-2005 à 14:39:13  profilanswer
 

Code :
  1. Graphics::TBitmap* Bitmap1 = new Graphics::TBitmap();
  2. Bitmap1 = new Graphics::TBitmap;


essaye de comprendre ce que tu écris...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°1048779
Le Roi New​bie
Posté le 15-04-2005 à 15:19:17  profilanswer
 

Ben le problème est que je n'ai encore pas eu assez de cours pour savoir ce que ces deux lignes signifient exactement (je me lance tout seul dans les bitmaps).
En fait ce sont deux façons différentes que j'ai trouvé sur internet afin de créer mon Bitmap1. Pour moi une de ces deux lignes suffirait pour le créer, mais il semble que non.
En fait c'est surtout le therme avec "::" qui me pose problème. Je n'arrive pas à créer le Bitmap1.

n°1048823
LordHarryP​otter
Posté le 15-04-2005 à 15:58:06  profilanswer
 

En fait voilà un exemple, imagine un "module" Bidule qui définie un objet Obj,pour accédé à l'objet obj tu peux faire  
Bidule::Obj ainsi tu évite tout confusion possible quand à l'origine de ton objet.
Si tu ne comprend pas les deux lignes e te conseilel de revoir ce qu'est un pointeur.

n°1048883
HelloWorld
Salut tout le monde!
Posté le 15-04-2005 à 16:48:35  profilanswer
 

Ces 2 lignes ne sont pas bien méchantes en elles-même, c'est juste qu'on se demande si tu comprends quelque chose ;)
En gros tu as écris ça:

Code :
  1. int toto = 10;
  2. toto = 5; // a quoi sert le = 10 ?


Bitmap1 c'est une variable comme les autres. Si tu dois l'utiliser à plusieurs endroits ben faut faire en sorte qu'elle soit accessible en plusieurs endroits...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°1048904
Le Roi New​bie
Posté le 15-04-2005 à 17:08:25  profilanswer
 

En fait je jouait avec "//" pour voir si au moins une des deux lignes me donnait un bon résultat.
 
Mais vous me donner une super idée, je crois avoir compris mon erreur (que j'avais d'ailleurs déjà esseyé de corriger mais j'ai mal procéder).
 
Je rends compte du résultat.

n°1048983
Le Roi New​bie
Posté le 15-04-2005 à 17:48:01  profilanswer
 

Merci HelloWorld, c'est toi qui a trouvé mon problème : "faut faire en sorte qu'elle soit accessible en plusieurs endroits..." et moi qui cherchait à modifier une des deux premières lignes.
 
C'est primitif comme erreur mais c'est ça. Le pire est que j'y avais pensé et que j'avais esseyé de modifier mais je m'était trompé d'évènement.
 
TRES GRAND MERCI POUR TA PATIENCE. :) :) :)
 

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Rectangles pleins - [RESOLU]

 

Sujets relatifs
comment mettre un lien sur un bouton flash ??? [Résolu]Petite question sur ereg_replace [résolu]
[Résolu]PEAR : DB_Pager : Paginer une requete Mysql[Résolu] Comment obtenir le résultat -opposé- d'un SELECT ?
Sauver plusieurs éléments de ma requête SQL dans un vecteur [RESOLU][Resolu] Asp/Java script pb de variable
[JAVA] Applet qui continue à tourner apres la fermeture web.[RESOLU][résolu][wxWidgets]Sauvegarde dans un fichier...
[RESOLU] recevoir des paquets sans la libpcap[résolu] gérer l'évènement click et plusieurs TIWGrid
Plus de sujets relatifs à : Rectangles pleins - [RESOLU]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR