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

Contribuez Discussion :

19 exercices en géométrie 2D


Sujet :

Contribuez

  1. #1
    Invité
    Invité(e)
    Par défaut 19 exercices en géométrie 2D
    Bonjour ou plutôt bonsoir,

    Aujourd'hui, Je vous propose 19 exercices graphiques de base en programmation c++ qt (version c++ qt4.7 à qt5.3) :

    Pré-requis : - notions en c++ et en c++ qt.

    Important : - Ces exercices sont libres,gratuits et ne sont pas obligatoires.
    - Ils peuvent être fait dans le désordre ou/et séparément.
    - Il n'y a pas de limite de temps ou de delai pour les faire.
    (- Ils peuvent ếtre fait tranquilement en 2 , 3 mois ou largement +)

    19 exercices graphiques géométrie 2D ,c++ qt :

    1.1 Ecrire un programme qui affiche,une fenetre vide de dimension 500x500 pixels.
    1.2 puis 3 autres de dimension de votre choix.
    (qlabel,qgraphicview)


    2.1 Ecrire un programme qui affiche, une fenêtre 500x500 pixels,avec un fond blanc.
    2.2 ...,avec un fond gris.
    2.3 Ensuite 2 autres programmmes avec un de fond de couleur de votre choix.
    (qlabel,qgraphicscene,qgraphicview,qpixmap,qcolor...)


    3.1 Ecrire un programme qui affiche une ligne horizontale sur un fond blanc fenétre 500x500 pixels.
    3.2 ...une ligne verticale...
    3.3 ...une ligne oblique...
    3.4 ...plusieurs lignes...
    (qpixmap,qpainter,qgraphicscene,qlabel,qgraphicview)


    4.1 Ecrire un programme qui affiche un rectangle .
    4.2 ...plusieurs rectangles.
    (qpixmap,qpainter,qgraphicscene,qlabel,qgraphicview)


    5.1 Ecrire un programme qui affiche une ellipse.
    5.2 ... plusieurs ellipses.
    (qpixmap,qpainter,qgraphicscene,qlabel,qgraphicview)

    6.1 Ecrire un programme qui affiche un polygone de 5 cotés.
    6.2 ...de 8 cotés.
    6.3 ...de 10 cotés.
    (qpixmap,qpainter,qpolygon,qlabel,qgraphicscene,qgraphicview)

    7.1 Ecrire un programme qui affiche une droite point par point .
    7.2 ...un rectangle avec 4 segments point par point.
    (qpixmap,qpainter,qgraphicscene,qpoint,qlabel,qgraphicview)

    8.Ecrire un programme qui affiche un rectangle en dégradé de vert en utilisant des lignes horizontales.
    (qcolor,qpixmap,qpainter,qlabel,qgraphicscene,qgraphicview)


    Je vous donnerai (internautes) les solutions ,à ces exercices ,dans un mois environ ,ou sinon +.

    Voici les liens des documents librairies qt :
    Doc Qt =>> Toutes les classes
    http://qt.developpez.com/doc/4.7/classes/

    Doc Qt =>> Tout les namespaces =>> Qt
    http://qt.developpez.com/doc/4.7/namespaces/

    ou sur le lien qt project.org =>> Documentation =>> c++ classes
    http://qt-project.org/doc/qt-5/classes.html

    Au revoir.
    Dernière modification par Invité ; 09/10/2014 à 23h55.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    environ 1 mois sont passé, voici (internautes) les réponses, comme prévu :

    I/ Les solutions avec les class c++ qt qpainter,qlabel,qpixmap.
    II/ Les solutions avec les class c++ qt qgraphicsscene,qgraphicsview.

    I/ Les solutions avec les class c++ qt qpainter,qlabel,qpixmap.

    1.1 Ecrire un programme qui affiche,une fenêtre vide de dimension 500x500 pixels.

    exo1_1.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include <QApplication>
    #include <QLabel>
     
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv);
    	QLabel mlabel ;
    		mlabel.setFixedSize(500,500) ;
    		mlabel.show() ;
    app.exec() ;
    return 0 ;
    }
    1.2 puis 3 autres de dimension de votre choix.

    exo1_2.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    #include <QApplication>
    #include <QLabel>
     
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QLabel fenetre1 ;
    		fenetre1.setFixedSize(70,600) ;
    		fenetre1.show() ;
    	QLabel fenetre2 ;
    		fenetre2.setFixedSize(700,100) ;
    	QLabel fenetre3 ;
    		fenetre2.show() ;
    		fenetre3.setFixedSize(900,900) ;
    		fenetre3.show() ;
    app.exec() ;
    return 0;
    }
    2.1 Ecrire un programme qui affiche, une fenêtre 500x500 pixels,avec un fond blanc.

    exo2_1.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #include <QApplication>
    #include <QPixmap>
    #include <QColor>
    #include <QLabel>
     
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor blanc(255,255,255) ;
    	QPixmap fond(500,500) ;
    		fond.fill(blanc) ;
    	QLabel fenetre ;
    		fenetre.setPixmap(fond) ;
    		fenetre.show() ;
    app.exec() ;
    return 0 ;
    }

    2.2 ...,avec un fond gris.

    exo2_2.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #include <QApplication>
    #include <QPixmap>
    #include <QColor>
    #include <QLabel>
     
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor gris(127,127,127) ;
    	QPixmap fond(500,500) ;
    		fond.fill(gris) ;
    	QLabel fenetre ;
    		fenetre.setPixmap(fond) ;
    		fenetre.show() ;
    app.exec() ;
    return 0 ;
    }
    2.3 Ensuite 2 autres programmes avec un fond de couleur de votre choix.

    exo2_3_1.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #include <QApplication>
    #include <QPixmap>
    #include <QColor>
    #include <QLabel>
     
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor jaune(255,255,0) ;
    	QPixmap fond(500,500) ;
    		fond.fill(jaune) ;
    	QLabel fenetre ;
    		fenetre.setPixmap(fond) ;
    		fenetre.show() ;
    app.exec() ;
    return 0 ;
    }
    exo2_3_2.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #include <QApplication>
    #include <QPixmap>
    #include <QColor>
    #include <QLabel>
     
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor orange(255,127,0) ;
    	QPixmap fond(500,500) ;
    		fond.fill(orange) ;
    	QLabel fenetre ;
    		fenetre.setPixmap(fond) ;
    		fenetre.show() ;
    app.exec() ;
    return 0 ;
    }
    3.1 Ecrire un programme qui affiche une ligne horizontale sur un fond blanc fenétre 500x500 pixels.

    exo3_1.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #include <QApplication>
    #include <QPixmap>
    #include <QPainter>
    #include <QColor>
    #include <QLabel>
     
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor blanc(255,255,255) ;
    	QPixmap papier(500,500) ;
    		papier.fill(blanc) ;
    	QPainter pinceau(&papier) ;
    		pinceau.drawLine(0,250,500,250) ;
    		pinceau.end() ;
    	QLabel fenetre ;
    		fenetre.setPixmap(papier) ;
    		fenetre.show() ;
    app.exec() ;
    return 0 ;
    }
    3.2 ...une ligne verticale...

    exo3_2.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #include <QApplication>
    #include <QPixmap>
    #include <QPainter>
    #include <QColor>
    #include <QLabel>
     
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor blanc(255,255,255) ;
    	QPixmap papier(500,500) ;
    		papier.fill(blanc) ;
    	QPainter pinceau(&papier) ;
    		pinceau.drawLine(250,0,250,500) ;
    		pinceau.end() ;
    	QLabel fenetre ;
    		fenetre.setPixmap(papier) ;
    		fenetre.show() ;
    app.exec() ;
    return 0 ;
    }
    3.3 ...une ligne oblique...

    exo3_3.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #include <QApplication>
    #include <QPixmap>
    #include <QPainter>
    #include <QColor>
    #include <QLabel>
     
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor blanc(255,255,255) ;
    	QPixmap papier(500,500) ;
    		papier.fill(blanc) ;
    	QPainter pinceau(&papier) ;
    		pinceau.drawLine(0,500,500,0) ;
    		pinceau.end() ;
    	QLabel fenetre ;
    		fenetre.setPixmap(papier) ;
    		fenetre.show() ;
    app.exec() ;
    return 0 ;
    }
    3.4 ...plusieurs lignes...

    exo3_4.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #include <QApplication>
    #include <QPixmap>
    #include <QPainter>
    #include <QColor>
    #include <QLabel>
     
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor blanc(255,255,255) ;
    	QPixmap papier(500,500) ;
    		papier.fill(blanc) ;
    	QPainter pinceau(&papier) ;
    		pinceau.drawLine(0,250,500,250) ;
    		pinceau.drawLine(0,500,500,0) ;
    		pinceau.drawLine(250,0,250,500) ;
    		pinceau.drawLine(0,0,500,500) ;
    		pinceau.end() ;
    	QLabel fenetre ;
    		fenetre.setPixmap(papier) ;
    		fenetre.show() ;
    app.exec() ;
    return 0 ;
    }

    4.1 Ecrire un programme qui affiche un rectangle .

    exo4_1.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #include <QApplication>
    #include <QPixmap>
    #include <QColor>
    #include <QPainter>
    #include <QLabel>
     
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor blanc(255,255,255) ;
    	QPixmap papier(500,500) ;
    		papier.fill(blanc) ;
    	QPainter stylo(&papier) ;
    		stylo.drawRect(50,50,300,300) ;
    		stylo.end() ;
    	QLabel fenetre ;
    		fenetre.setPixmap(papier) ;
    		fenetre.show() ;
    app.exec() ;
    return 0 ;
    }
    4.2 ...plusieurs rectangles.

    exo4_2.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    #include <QApplication>
    #include <QPixmap>
    #include <QColor>
    #include <QPainter>
    #include <QLabel>
     
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor blanc(255,255,255) ;
    	QPixmap papier(500,500) ;
    		papier.fill(blanc) ;
    	QPainter stylo(&papier) ;
    		stylo.drawRect(50,50,300,300) ;
    		stylo.drawRect(20,20,20,100) ;
    		stylo.drawRect(60,250,100,10) ;
    		stylo.drawRect(20,300,20,20) ;
    		stylo.drawRect(20,325,20,20) ;
    		stylo.drawRect(45,300,20,20) ;
    		stylo.end() ;
    	QLabel fenetre ;
    		fenetre.setPixmap(papier) ;
    		fenetre.show() ;
    app.exec() ;
    return 0 ;
    }
    5.1 Ecrire un programme qui affiche une ellipse.

    exo5_1.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #include <QApplication>
    #include <QPixmap>
    #include <QColor>
    #include <QPainter>
    #include <QLabel>
     
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor blanc(255,255,255) ;
    	QPixmap papier(500,500) ;
    		papier.fill(blanc) ;
    	QPainter stylo(&papier) ;
    		stylo.drawEllipse(10,10,380,380) ;
    		stylo.end() ;
    	QLabel fenetre ;
    		fenetre.setPixmap(papier) ;
    		fenetre.show() ;
    app.exec() ;
    return 0 ;
    }
    5.2 ... plusieurs ellipses.

    exo5_2.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    #include <QApplication>
    #include <QPixmap>
    #include <QColor>
    #include <QPainter>
    #include <QLabel>
     
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor blanc(255,255,255) ;
    	QPixmap papier(500,500) ;
    		papier.fill(blanc) ;
    	QPainter stylo(&papier) ;
    		stylo.drawEllipse(20,20,460,460) ;
    		stylo.drawEllipse(40,40,420,420) ;
    		stylo.drawEllipse(120,120,260,260) ;
    		stylo.drawEllipse(235,235,10,10) ;
    		stylo.drawEllipse(255,255,10,10) ;
    		stylo.drawEllipse(235,255,10,10) ;
    		stylo.drawEllipse(255,235,10,10) ;
    		stylo.end() ;
    	QLabel fenetre ;
    		fenetre.setPixmap(papier) ;
    		fenetre.show() ;
    app.exec() ;
    return 0 ;
    }
    6.1 Ecrire un programme qui affiche un polygone de 5 cotés.

    exo6_1.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #include <QApplication>
    #include <QPixmap>
    #include <QColor>
    #include <QPolygon>
    #include <QPainter>
    #include <QLabel>
     
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor blanc(255,255,255) ;
    	QPixmap papier(500,500) ;
    		papier.fill(blanc) ;
    	QPolygon polygone1 ;
    		polygone1.setPoints(5,20,50, 250,5, 490,250, 350,490, 70, 400);  
    	QPainter stylo(&papier) ;
    		stylo.drawPolygon(polygone1);
    		stylo.end() ;
    	QLabel fenetre ;
    		fenetre.setPixmap(papier) ;
    		fenetre.show() ;
    app.exec() ;
    return 0 ;
    }
    6.2 ...de 8 cotés.

    exo6_2.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    #include <QApplication>
    #include <QPixmap>
    #include <QColor>
    #include <QPolygon>
    #include <QPainter>
    #include <QLabel>
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor blanc(255,255,255) ;
    	QPixmap papier(500,500) ;
    		papier.fill(blanc) ;
    	QPolygon polygone1 ;
    		polygone1.setPoints(8,20,250, 150,80, 250,5, 490,250, 420,370, 400,490, 200,470, 70, 400);  
    	QPainter stylo(&papier) ;
    		stylo.drawPolygon(polygone1);
    		stylo.end() ;
    	QLabel fenetre ;
    		fenetre.setPixmap(papier) ;
    		fenetre.show() ;
    app.exec() ;
    return 0 ;
    }
    6.3 ...de 10 cotés.

    exo6_3.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    #include <QApplication>
    #include <QPixmap>
    #include <QColor>
    #include <QPolygon>
    #include <QPainter>
    #include <QLabel>
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor blanc(255,255,255) ;
    	QPixmap papier(500,500) ;
    		papier.fill(blanc) ;
    	QPolygon polygone1 ;
    polygone1.setPoints(10,20,250, 150,80, 250,5, 310,90, 480,150, 490,250, 420,370, 400,490, 200,470, 70,400);  
    	QPainter stylo(&papier) ;
    		stylo.drawPolygon(polygone1);
    		stylo.end() ;
    	QLabel fenetre ;
    		fenetre.setPixmap(papier) ;
    		fenetre.show() ;
    app.exec() ;
    return 0 ;
    }
    7.1 Ecrire un programme qui affiche une droite point par point.

    exo7_1.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    #include <QApplication>
    #include <QPixmap>
    #include <QColor>
    #include <QLabel>
    #include <QPainter>
     
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor blanc(255,255,255) ;
    	QPixmap papier(500,500) ;
    		papier.fill(blanc) ;
    	int xw = 0 ;
    	int yw = 0 ; 
    	QPainter crayon(&papier) ;
    	for (xw = 0; xw < 500; xw++)
    	{	yw = -xw + 500 ;  
    		crayon.drawPoint(xw,yw) ;
    	}
    	crayon.end() ; 
    	QLabel fenetre ;
    		fenetre.setPixmap(papier) ;
    		fenetre.show() ;
    app.exec() ;
    return 0 ;
    }
    7.2 ...un rectangle avec 4 segments point par point.

    exo7_2.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    #include <QApplication>
    #include <QPixmap>
    #include <QColor>
    #include <QLabel>
    #include <QPainter>
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor blanc(255,255,255) ;
    	QPixmap papier(500,500) ;
    		papier.fill(blanc) ;
    	int xw = 0 ;
    	int yw = 0 ; 
    	QPainter crayon(&papier) ;
    	for( xw = 50; xw < 350; xw++)
    	{	crayon.drawPoint(xw,100) ;
    		crayon.drawPoint(xw,400) ; 
    	}
    	for( yw = 100; yw < 400 ;yw++)
    	{	crayon.drawPoint(50, yw) ;
    		crayon.drawPoint(350, yw) ;    
    	}
    	crayon.end() ; 
    	QLabel fenetre ;
    		fenetre.setPixmap(papier) ;
    		fenetre.show() ;
    app.exec() ;
    return 0 ;
    }
    8.Ecrire un programme qui affiche un rectangle en dégradé de vert en utilisant des lignes horizontales.

    exo8.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    #include <QApplication>
    #include <QPixmap>
    #include <QColor>
    #include <QLabel>
    #include <QPainter>
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor bleu(0,0,35) ;
    	QPixmap papier(500,500) ;
    		papier.fill(bleu) ;
    	int inc = 0 ;
    	QColor vertdegrader(0, 0, 0) ;
    	QPainter crayon(&papier) ;
    	for (inc = 0;inc < 255; inc++)
    	{	vertdegrader.setRgb(0, inc, 0) ;
    		crayon.setPen(vertdegrader) ; 
    		crayon.drawLine(20,(127+inc),480,(127+inc) ) ;     
    	}
    	crayon.end() ; 
    	QLabel fenetre ;
    		fenetre.setPixmap(papier) ;
    		fenetre.show() ;
    app.exec() ;
    return 0 ;
    }
    Dernière modification par Invité ; 14/11/2014 à 16h22.

  3. #3
    Invité
    Invité(e)
    Par défaut
    II/ Les solutions avec les class c++ qt qgraphicsscene,qgraphicsview.

    1.1 Ecrire un programme qui affiche,une fenetre vide de dimension 500x500 pixels.

    exo1_1b.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include <QApplication>
    #include <QGraphicsView>
     
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QGraphicsView * fenetre1 = new QGraphicsView() ;
    		fenetre1->setFixedSize(500,500) ;
    		fenetre1->show() ;
    app.exec() ;
    return 0 ;
    }
    1.2 puis 3 autres de dimension de votre choix.

    exo1_2b.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #include <QApplication>
    #include <QGraphicsView>
     
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QGraphicsView * fenetre1 = new QGraphicsView ;
    	QGraphicsView * fenetre2 = new QGraphicsView ;
    	QGraphicsView * fenetre3 = new QGraphicsView ;
    //-----------------------------------------------------
    		fenetre1->setFixedSize(200,750) ;
    		fenetre2->setFixedSize(750,220) ;
    		fenetre3->setFixedSize(100,100) ;
    //-----------------------------------------------------		
    		fenetre1->show() ;
    		fenetre2->show() ;
    		fenetre3->show() ;
    app.exec() ;
    return 0 ;
    }


    2.1 Ecrire un programme qui affiche, une fenêtre 500x500 pixels,avec un fond blanc.

    exo2_1b.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    #include <QGraphicsScene>
    #include <QGraphicsView>
    #include <QColor>
    #include <QApplication>
     
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor blanc(255,255,255) ;
    	QGraphicsScene * image = new QGraphicsScene ;	
    		image->setBackgroundBrush(blanc) ;
    	QGraphicsView * fenetre = new QGraphicsView ;
    		fenetre->setFixedSize(500,500) ;
    		fenetre->setScene(image) ;
    		fenetre->show() ;
    app.exec() ;
    return 0 ;
    }
    2.2 ...,avec un fond gris.

    exo2_2b.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #include <QGraphicsScene>
    #include <QGraphicsView>
    #include <QColor>
    #include <QApplication>
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor gris(127,127,127) ;
    	QGraphicsScene * image = new QGraphicsScene ;	
    		image->setBackgroundBrush(gris) ;
    	QGraphicsView * fenetre = new QGraphicsView ;
    		fenetre->setFixedSize(500,500) ;
    		fenetre->setScene(image) ;
    		fenetre->show() ;
    app.exec() ;
    return 0 ;
    }
    2.3 Ensuite 2 autres programmes avec un fond de couleur de votre choix.

    exo2_3_1b.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #include <QGraphicsScene>
    #include <QGraphicsView>
    #include <QColor>
    #include <QApplication>
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor jaune(255,255,0) ;
    	QGraphicsScene * image = new QGraphicsScene ;	
    		image->setBackgroundBrush(jaune) ;
    	QGraphicsView * fenetre = new QGraphicsView ;
    		fenetre->setFixedSize(500,500) ;
    		fenetre->setScene(image) ;
    		fenetre->show() ;
    app.exec() ;
    return 0 ;
    }
    exo2_3_2b.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #include <QGraphicsScene>
    #include <QGraphicsView>
    #include <QColor>
    #include <QApplication>
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor orange(255,127,0) ;
    	QGraphicsScene * image = new QGraphicsScene ;	
    		image->setBackgroundBrush(orange) ;
    	QGraphicsView * fenetre = new QGraphicsView ;
    		fenetre->setFixedSize(500,500) ;
    		fenetre->setScene(image) ;
    		fenetre->show() ;
    app.exec() ;
    return 0 ;
    }


    3.1 Ecrire un programme qui affiche une ligne horizontale sur un fond blanc fenétre 500x500 pixels.

    exo3_1b.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    #include <QGraphicsScene>
    #include <QGraphicsView>
    #include <QColor>
    #include <QApplication>
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor blanc(255,255,255) ;
    	QGraphicsScene * image = new QGraphicsScene ;	
    		image->setBackgroundBrush(blanc) ;
    		image->addLine(0,250,497,250) ;
    	QGraphicsView * fenetre = new QGraphicsView ;
    		fenetre->setFixedSize(500,500) ;
    		fenetre->setScene(image) ;
    		fenetre->show() ;
    app.exec() ;
    return 0 ;
    }
    3.2 ...une ligne verticale...

    exo3_2b.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    #include <QGraphicsScene>
    #include <QGraphicsView>
    #include <QColor>
    #include <QApplication>
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor blanc(255,255,255) ;
    	QGraphicsScene * image = new QGraphicsScene ;	
    		image->setBackgroundBrush(blanc) ;
    		image->addLine(250,0,250,497) ;
    	QGraphicsView * fenetre = new QGraphicsView ;
    		fenetre->setFixedSize(500,500) ;
    		fenetre->setScene(image) ;
    		fenetre->show() ;
    app.exec() ;
    return 0 ;
    }
    3.3 ...une ligne oblique...

    exo3_3b.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    #include <QGraphicsScene>
    #include <QGraphicsView>
    #include <QColor>
    #include <QApplication>
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor blanc(255,255,255) ;
    	QGraphicsScene * image = new QGraphicsScene ;	
    		image->setBackgroundBrush(blanc) ;
    		image->addLine(0,495,495,0) ;
    	QGraphicsView * fenetre = new QGraphicsView ;
    		fenetre->setFixedSize(500,500) ;
    		fenetre->setScene(image) ;
    		fenetre->show() ;
    app.exec() ;
    return 0 ;
    }
    3.4 ...plusieurs lignes...

    exo3_4b.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #include <QGraphicsScene>
    #include <QGraphicsView>
    #include <QColor>
    #include <QApplication>
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor blanc(255,255,255) ;
    	QGraphicsScene * image = new QGraphicsScene ;	
    		image->setBackgroundBrush(blanc) ;
    		image->addLine(0,250,495,250) ;
    		image->addLine(250,0,250,495) ;
    		image->addLine(0,495,495,0) ;
    		image->addLine(0,0,495,495) ;
    	QGraphicsView * fenetre = new QGraphicsView ;
    		fenetre->setFixedSize(500,500) ;
    		fenetre->setScene(image) ;
    		fenetre->show() ;
    app.exec() ;
    return 0 ;
    }
    4.1 Ecrire un programme qui affiche un rectangle.

    exo4_1b.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    #include <QGraphicsScene>
    #include <QGraphicsView>
    #include <QColor>
    #include <QApplication>
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor blanc(255,255,255) ;
    	QGraphicsScene * image = new QGraphicsScene ;	
    		image->setBackgroundBrush(blanc) ;
    		image->addRect(12,55,344,252) ;		
    	QGraphicsView * fenetre = new QGraphicsView ;
    		fenetre->setFixedSize(500,500) ;
    		fenetre->setScene(image) ;
    		fenetre->show() ;
    app.exec() ;
    return 0 ;
    }

    4.2 ...plusieurs rectangles.

    exo4_2b.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #include <QGraphicsScene>
    #include <QGraphicsView>
    #include <QColor>
    #include <QApplication>
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor blanc(255,255,255) ;
    	QGraphicsScene * image = new QGraphicsScene ;	
    		image->setBackgroundBrush(blanc) ;
    		image->addRect(35,55,364,252) ;
    		image->addRect(50,50,125,30) ;
    		image->addRect(50,100,125,30) ;
    		image->addRect(50,150,125,30) ;
    	QGraphicsView * fenetre = new QGraphicsView ;
    		fenetre->setFixedSize(500,500) ;
    		fenetre->setScene(image) ;
    		fenetre->show() ;
    app.exec() ;
    return 0 ;
    }
    5.1 Ecrire un programme qui affiche une ellipse.

    exo5_1b.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    #include <QGraphicsScene>
    #include <QGraphicsView>
    #include <QColor>
    #include <QApplication>
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor blanc(255,255,255) ;
    	QGraphicsScene * image = new QGraphicsScene ;	
    		image->setBackgroundBrush(blanc) ;
    		image->addEllipse(10,10,380,380) ;		
    	QGraphicsView * fenetre = new QGraphicsView ;
    		fenetre->setFixedSize(500,500) ;
    		fenetre->setScene(image) ;
    		fenetre->show() ;
    app.exec() ;
    return 0 ;
    }
    5.2 ... plusieurs ellipses.

    exo5_2b.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #include <QGraphicsScene>
    #include <QGraphicsView>
    #include <QColor>
    #include <QApplication>
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor blanc(255,255,255) ;
    	QGraphicsScene * image = new QGraphicsScene ;	
    		image->setBackgroundBrush(blanc) ;
    		image->addEllipse(20,20,460,460) ;
    		image->addEllipse(40,40,420,420) ;
    		image->addEllipse(120,120,260,260) ;
    		image->addEllipse(235,235,10,10) ;
    		image->addEllipse(255,255,10,10) ;
    		image->addEllipse(235,255,10,10) ;
    		image->addEllipse(255,235,10,10) ;
    	QGraphicsView * fenetre = new QGraphicsView ;
    		fenetre->setFixedSize(500,500) ;
    		fenetre->setScene(image) ;
    		fenetre->show() ;
    app.exec() ;
    return 0 ;
    }
    6.1 Ecrire un programme qui affiche un polygone de 5 cotés.

    exo6_1b.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    #include <QGraphicsScene>
    #include <QGraphicsView>
    #include <QColor>
    #include <QApplication>
    #include <QPolygonF>
    #include <QPointF>
     
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor blanc(255,255,255) ;
    	QPointF p1(20,50) ;
    	QPointF p2(250,5) ;
    	QPointF p3(490,250) ;
    	QPointF p4(350,490) ;
    	QPointF p5(70, 400) ;  
    	QPolygonF polygone20 ;
    		polygone20 << p1 << p2 << p3 << p4 << p5 ; 
    	QGraphicsScene * image = new QGraphicsScene ;	
    		image->setBackgroundBrush(blanc) ;
    		image->addPolygon(polygone20) ;
    	QGraphicsView * fenetre = new QGraphicsView ;
    		fenetre->setFixedSize(500,500) ;
    		fenetre->setScene(image) ;
    		fenetre->show() ;
    app.exec() ;
    return 0 ;
    }
    6.2 ...de 8 cotés.

    exo6_2b.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    #include <QGraphicsScene>
    #include <QGraphicsView>
    #include <QColor>
    #include <QApplication>
    #include <QPolygonF>
    #include <QPointF>
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor blanc(255,255,255) ;
    	QPointF p1(20, 250) ;
    	QPointF p2(150, 80) ;
    	QPointF p3(250, 5) ;
    	QPointF p4(490, 250) ;
    	QPointF p5(420, 370) ;
    	QPointF p6(400,490 ) ;
    	QPointF p7(200, 470) ;
    	QPointF p8(70, 400) ; 
    	QPolygonF polygone20 ;
    		polygone20 << p1 << p2 << p3 << p4 ;    
    		polygone20 << p5 << p6 << p7 << p8 ; 
    	QGraphicsScene * image = new QGraphicsScene ;	
    		image->setBackgroundBrush(blanc) ;
    		image->addPolygon(polygone20) ;
    	QGraphicsView * fenetre = new QGraphicsView ;
    		fenetre->setFixedSize(500,500) ;
    		fenetre->setScene(image) ;
    		fenetre->show() ;
    app.exec() ;
    return 0 ;
    }
    6.3 ...de 10 cotés.

    exo6_3b.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    #include <QGraphicsScene>
    #include <QGraphicsView>
    #include <QColor>
    #include <QApplication>
    #include <QPolygonF>
    #include <QPointF>
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor blanc(255,255,255) ;
    	QPointF p1(20, 250) ;
    	QPointF p2(150, 80) ;
    	QPointF p3(250, 5) ;
    	QPointF p4(310, 90) ;
    	QPointF p5(480,150) ;
    	QPointF p6(490, 250) ;
    	QPointF p7(420, 370) ;
    	QPointF p8(400, 490) ;
    	QPointF p9(200, 470) ;
    	QPointF p10(70, 400) ;
    	QPolygonF polygone20 ;
    		polygone20 << p1 << p2 << p3 << p4 << p5 ;    
    		polygone20 << p6 << p7 << p8 << p9 << p10 ;
    	QGraphicsScene * image = new QGraphicsScene ;	
    		image->setBackgroundBrush(blanc) ;
    		image->addPolygon(polygone20) ;
    	QGraphicsView * fenetre = new QGraphicsView ;
    		fenetre->setFixedSize(500,500) ;
    		fenetre->setScene(image) ;
    		fenetre->show() ;
    app.exec() ;
    return 0 ;
    }

    7.1 Ecrire un programme qui affiche une droite point par point .
    --> Pas de solution pour cette exercice, car addpoint n'est pas une instruction de la class qgraphicsscene.

    7.2 ...un rectangle avec 4 segments point par point.
    --> Pas de solution pour cette exercice, car addpoint n'est pas une instruction de la class qgraphicsscene.

    8.Ecrire un programme qui affiche un rectangle en dégradé de vert en utilisant des lignes horizontales.

    exo8b.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    #include <QGraphicsScene>
    #include <QGraphicsView>
    #include <QColor>
    #include <QApplication>
    #include <QPolygonF>
    #include <QPointF>
    int main(int argc,char ** argv)
    {	QApplication app(argc,argv) ;
    	QColor orange(250, 150, 0) ;	
    	QGraphicsScene * image = new QGraphicsScene ;	
    		image->setBackgroundBrush(orange) ;
    	QColor vertdegrader(0, 0, 0) ;
    	int incz = 0 ; 
    	for (incz = 0 ;incz < 255 ;incz++ )
    	{	vertdegrader.setRgb(0,incz,0) ;
    		image->addLine(20,(incz+127),480,(incz+127), vertdegrader) ;
    	}
    	QGraphicsView * fenetre = new QGraphicsView ;
    		fenetre->setFixedSize(500,500) ;
    		fenetre->setScene(image) ;
    		fenetre->show() ;
    app.exec() ;
    return 0 ;
    }
    Ces programmes ont été crées sous linux gnome3, avec un pc processeur dual core,un disque dur ssd (64go)
    des logiciels Qt version(entre 4.8 et 5.3), compilateur gcc-c++ et essentiels(éditeur de texte,terminal etc...).

    Au revoir, et bonne programmation.
    Dernière modification par Invité ; 14/11/2014 à 16h28.

Discussions similaires

  1. Ecran graphique simple pour exercices de géométrie
    Par Roland Chastain dans le forum Débuter
    Réponses: 7
    Dernier message: 16/06/2012, 16h24
  2. Géométrie, exercice de collège
    Par Barsy dans le forum Enigmes
    Réponses: 22
    Dernier message: 04/08/2008, 12h39
  3. [géométrie] tétraèdre régulier
    Par khayyam90 dans le forum Mathématiques
    Réponses: 8
    Dernier message: 12/08/2004, 22h33
  4. Pages d'exercices à faire pour l'autoformation ?
    Par [thebadskull] dans le forum Evolutions du club
    Réponses: 13
    Dernier message: 15/06/2004, 20h26
  5. Pouvez vous m'aider a resoudres ces 3 exercices
    Par algorithmique dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 09/08/2002, 17h26

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