IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

des questions mathématiques


Sujet :

C++Builder

  1. #1
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 44
    Par défaut des questions mathématiques
    salut a tout le monde
    j'ai un petit projet mais suis devant un veritable Challenge et je pose quelque questions
    1-j'ai un souci avec les boucle de StringGrid si je veux faire par exemple une somation de deux matrices comment je peux basculer a tous mes elements
    2-deuxieme question comment je réalise les droites avec une direction et une longuer
    3-troisiemes question les fonction mathématique comme arctangant et sinus et cosinus comment je peux étuliser dans builder c++

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2002
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 481
    Par défaut
    J'avoue que je ne comprend pas la première question.

    Pour tracer un segment de droite de longueur donnée dans une direction donnée par un angle, à partir d'un point donné, faire par exemple dans un
    TBitmap bmp , pour une logueur l et un angle alpha :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int xd, yd, dx, dy;
    bmp->Canvas->MoveTo(xd, yd);
    dx = l*cos(alpha);
    dy = l*sin(alpha);
    bmp->Canvas->LinTo(xd + dx, yd + dy);
    Pour utiliser les sinus, cosinus et arctg dans C++Builder :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include <math.h>
    double angle, cosinus, sinus, atg;
    
    
    cosinus =  cos(angle);
    sinus = sin(angle);
    atg = atan(sinus/cosinus);

  3. #3
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 44
    Par défaut
    merci pour ta réponse mais j'ai pas compris qu'est que ca veux dir TBitmap bmp ou je le trouve ça et pour ma premiere question comment j'ai effectue des opération sur les matrice
    et merci bouceau

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2002
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 481
    Par défaut
    Pour dessiner il faut un Canvas. Les bitmap ou les Printer() ont un Canvas.
    Pour utiliser un Bitmap, il suffit d'aller chercher celui de l'Image créée par exemple au moment de la conception du programme. C'est un TImage qui s'appelle par exemple Image1.
    On a accès au Canvas de l'Image par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Image1->Picture->Bitmap->Canvas->MoveTo(    );
    Image1->Picture->Bitmap->Canvas->LineTo(    );

  5. #5
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 44
    Par défaut
    est que tu a un autre exemple svp

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Tout ce qui dispose d'une propriété TCanvas qui est une classe permettant de dessiner bon nombre de primitives graphiques (voir l'aide) y compris d'effacer tout ou partie de la zone client ou bien de remplir des zones délimitées !

    Du coté VCL : TForm, TImage, TPaintBox !
    Du coté classes de base TCustomControl, TCustomForm, etc...
    En règle générale, le dessin n'est pas persistant sur ces objets, ce qui signifie qu'il faut développer de quoi en redessiner le contenu.

    Pour un débutant, TPaintBox est sans doute l'objet le plus simple à utiliser.
    Il suffit de lui affecter une méthode OnPaint et y dessiner via son canvas.

    Du coté non visuel : Graphics::TBitmap !
    Le dessin y est persistant.
    Comme un bitmap n'est pas visible, il faut le dessiner à son tour sur un composant visible via Canvas->Draw(x,y, Bitmap) ... voir l'aide pour d'autres solutions de copie d'un bitmap !
    Sur les versions BCB ne disposant pas du double buffering, le dessin sur un bitmap permet de supprimer les effets indésirables tels que le scintillment et de gagner du temps au niveau exécution.

    A plus !

  7. #7
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 44
    Par défaut
    merci pour ton explication mais je pense que tu me comprond pas
    par exemple dans le client TPaintBox je veux dessiné avec la souris si nom
    je veux délimité mons tres au niveau de code avec un angle et une distance
    et merci

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Par défaut
    salut aboishaq,
    je pense que pasqualini a donné une bonne réponse, et c'est a toi de nous dire précisement le problème car il t'as donné ce bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    int xd, yd, dx, dy;
    bmp->Canvas->MoveTo(xd, yd);
    dx = l*cos(alpha);
    dy = l*sin(alpha);
    bmp->Canvas->LinTo(xd + dx, yd + dy);
    j'ajoute seulement que tu doit initialiser les xd, yd, dx, dy; avant de les mettre dans le bmp->Canvas->MoveTo(xd, yd);
    dis nous si ton problème est regler ou pas.

  9. #9
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 44
    Par défaut
    il me done un message d'ereur (undefined symbole 'bmp')

  10. #10
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Par défaut
    bmp c est le nom de ton composant image

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Par défaut
    quand tu poses le composant image dans ta TForm1 (je suppose), renomes le en bmp .
    bonne continuation

  12. #12
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Citation Envoyé par aboishak Voir le message
    merci pour ton explication mais je pense que tu me comprond pas
    par exemple dans le client TPaintBox je veux dessiné avec la souris si nom
    je veux délimité mons tres au niveau de code avec un angle et une distance
    et merci
    Salut !

    Pour le dessin d'un segment à l'aide de la souris, on a au moins deux gestuelles distinctes :
    a) saisie sans appuyer continuellement sur le bouton de la souris (facile à gérer pour l'utilisateur)
    - un premier événement OnMouseDown pour lancer la saisie
    - les événements OnMouseMove pour suivre la saisie
    - un deuxième événement OnMouseDown pour terminer la saisie

    b) saisie en appyant continuellement sur le bouton de la souris (plus délicat à gérer pour l'utilisateur, en terme d'ergonomie)
    - Un événement OnMouseDown pour lancer la saisie
    - les évenements OnMouseMove pour suivre la saisie
    - Un événement OnMouseUp pour terminer la saisie

    Pour ces deux solutions existe deux mises en oeuvres, en terme d'événementielles :
    - soit on se sert d'un flag et des événementielles telles qu'elles (le code est de moins en moins lisible plus on y gère d'actions, à cause des tests)
    - soit on se sert d'une séquence d'événementielles (le code est plus lisible même si on rajoute d'autres méthodes car il y a moins de tests)

    Dans la OnMouseMove on passe son temps à effacer l'ancien segment et à dessiner le nouveau segment.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Canvas->Pen->Mode = pmNot; // NOT (on peut aussi faire pmXor : XOR)
    Pour le dessin à partir d'équations ou autres formules, il est nécessaire de fixer le référentiel (le centre du monde).
    En effet, TCanvas dessine sur la zone client en considérant le coin gauche en haut comme son centre du monde (0,0) et dessine avec les y inversés par rapport à l'idée que l'on se fait d'un système d'axes orientés (abscisses et ordonnées).
    En prenant un exemple concret : dessiner de (-20,-40) à (-80, - 200) n'a aucun sens sur un paintbox !

    On continue ? Faut-il un montrer comment faire ?

    Un conseil : modéliser le segment en développant une classe !
    Celà permet de les mémoriser mais aussi de mettre en place de quoi les dessiner (dans ce cas précis, ce sont les segments eux-mêmes qui se dessineront) !

    A plus !

  13. #13
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 44
    Par défaut
    merci beaucoup les amis, ça y est j'arrive a faire le trait

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Listes des fonctions mathématiques
    Par boulette18 dans le forum MFC
    Réponses: 1
    Dernier message: 28/09/2005, 06h38
  2. Poser des question pertinentes...
    Par lilibrik dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 1
    Dernier message: 21/06/2005, 18h12
  3. Des questions sur suse linux !
    Par barucca dans le forum SUSE
    Réponses: 3
    Dernier message: 07/04/2004, 11h35
  4. [Vim] et C++ ; Réponses à des questions de Richard
    Par Luc Hermitte dans le forum Autres éditeurs
    Réponses: 13
    Dernier message: 19/01/2004, 23h32
  5. Implémentation des fonctions mathématiques
    Par mat.M dans le forum Mathématiques
    Réponses: 9
    Dernier message: 17/06/2002, 16h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo