Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Graphisme en 2D avec QT4
2
Graphisme en 2D avec QT4 Quelques notions Les classes qui vont bien
Des animations ?
3
Graphisme en 2D avec QT4 Quelques notions Les classes qui vont bien
Des animations ?
4
Quelques notions La scène C'est le théâtre des opérations.
C'est dans une scène que tous les objets seront réellement présents. Une scène peut contenir des formes et du texte.
5
Quelques notions La vue C'est la visualisation de la scène.
Pour une même scène, on peut avoir différentes vues.
6
Quelques notions Les formes Les différentes formes de base sont :
le point la ligne le rectangle le polygone l'ellipse
7
Quelques notions Les effets
Chaque forme peut avoir une couleur, une épaisseur, ou des effets divers. Idem pour le texte (avec des polices de caractères spécifiques en plus).
8
Graphisme en 2D avec QT4 Quelques notions Les classes qui vont bien
Des animations ?
9
Les classes qui vont bien
La scène QGraphicsScene abscisses (x) ordonnées (y)
10
Les classes qui vont bien
La vue QGraphicsView
11
Les classes qui vont bien
Les formes QPointF(x,y) QLineF(x1,y1,x2,y2) ou QLineF(p1,p2) ou QGraphicsLineItem QRectF(xGauche,yHaut,largeur,hauteur) ; ou QGraphicsRectItem QPolygon ou QGraphicsPolygonItem QGraphicsEllipseItem
12
Les classes qui vont bien
Les effets (uniquement applicables sur les objets de type QGraphics####Item) QColor QBrush QPen Applicable avec des méthodes setBrush et setPen
13
Les classes qui vont bien
Les effets QColor (int r, int g, int b, int a) r : [0..255] -> rouge g : [0..255] -> vert b : [0..255] -> bleu a : [0..255] -> transparence
14
Les classes qui vont bien
Les effets QBrush(QColor c, BrushStyle s); QConicalGradient QRadialGradient QLinearGradient QPixmap
15
Les classes qui vont bien
Les effets QPen(QBrush b, qreal largeur, PenStyle ps, PenCapStyle cap,PenJoinStyle join)
16
Les classes qui vont bien
dimensionnement de la scene Création d'une vue Création d'une scene Exemple QGraphicsScene *maScene= new QGraphicsScene(); QGraphicsView *maVue=new QGraphicsView(); maScene->setSceneRect(0, 0, 400, 300) ; QPoint p1(10,10); QPolygon poly ; poly<<p1 ; poly<<QPoint(30,10)<<QPoint(60,50); maScene->addPolygon(poly) ; maVue->setGeometry(10,10,400,300) ; maVue->setScene(maScene) ; maVue->show(); Ajout d'un point au polygone Ajout d'un polygone à la scene dimensionnement de la vue association de la scene à la vue affichage de la scene
17
Les classes qui vont bien
QPoint p1(10,10); QPolygon poly1 ; QGraphicsLineItem *ligne ; QGraphicsPolygonItem *polyI ; QGraphicsTextItem *monTexte; poly1<<p1 ; ligne=new QGraphicsLineItem(0,0,400,300); polyI=new QGraphicsPolygonItem(poly1); monTexte=new QGraphicsTextItem("bonjour"); monTexte->setPos(50,100) ; maScene->addItem(monTexte); maScene->addItem(polyI) ; maScene->addItem(ligne) ; maVue->setScene(maScene) ; maVue->show(); ajouter un objet à la scene positionner le texte en (50,100)
18
Graphisme en 2D avec QT4 Quelques notions Les classes qui vont bien
Des animations ?
19
Des animations ? Déplacer des objets : Avant l'affichage de la vue:
translate(offsetX, offsetY) ; Après l'affichage de la vue : moveBy(offsetX, offsetY) ; Déplacer l'objet de offsetX pixels sur l'axe des abscisses et de offsetY pixels sur l'axe des ordonnées
20
Des animations ? Les objets qui ne sont pas
déplacer le polygone de +20 sur x et de +33 sur y QPoint p1(10,10); QPolygon poly ; QGraphicsLineItem *ligne ; QGraphicsPolygonItem *polyI ; poly<<p1 ; poly.translate(20,33); ligne=new QGraphicsLineItem(0,0,400,300); polyI=new QGraphicsPolygonItem(poly1); maScene->addItem(polyI) ; maScene->addItem(ligne) ; ligne->translate(-5,12); maVue->setScene(maScene) ; maVue->show(); déplacer la ligne de -5 sur x et de +12 sur y Les objets qui ne sont pas de type "item" ne peuvent plus être déplacés une fois qu'ils ont été ajoutés à la scène.
21
faire faire des aller-retour
Des animations ? ligne=new QGraphicsLineItem(0,0,400,300); polyI=new QGraphicsPolygonItem(poly1); maScene->addItem(polyI) ; maScene->addItem(ligne) ; maVue->setScene(maScene) ; maVue->show() ; int pasx=1 ; int x=0; while(1){ ligne->moveBy(pasx,0) ; x+=pasx; if (x>=400) pasx=-1 ; if (x<=0) pasx=1; } faire faire des aller-retour à l'objet ligne sur l'axe des abscisses temps d'exécution : < 1 milliseconde
22
Des animations ? Il est possible de réaliser des animations chronométrées: QTimeLine QGraphicsItemAnimation
23
Conclusion Association vue <-> scène Notion d'objets d'une scène
Possibilité d'ajouter des images
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.