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

SDL Discussion :

Dessiner une courbe


Sujet :

SDL

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 85
    Points : 67
    Points
    67
    Par défaut Dessiner une courbe
    Bonjour,

    j'ai besoin d'aide afin de créer une courbe ou du moins un assemble de segment avec SDL.

    Voici mon main :
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    #include <stdlib.h>
    #include <stdio.h>
    #include <SDL/SDL.h>
     
    void pause();
     
    int main(int argc, char *argv[])
    {
        double tableau = fic();
        int i =0;
        int j =0;
        int k =0;
        SDL_Surface *ecran = NULL; // Le pointeur qui va stocker la surface de l'écran
        SDL_Init(SDL_INIT_VIDEO);
        ecran = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE); // On tente d'ouvrir une fenêtre
        if (ecran == NULL) // Si l'ouverture a échoué, on le note et on arrête
        {
            fprintf(stderr, "Impossible de charger le mode vidéo : %s\n", SDL_GetError());
            exit(EXIT_FAILURE);
        }  
        SDL_WM_SetCaption("Ma super fenêtre SDL !", NULL);
        SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 17, 206, 112));
        SDL_Flip(ecran);
        for (i=0; i<tableau.length; i++){
    	for(j=0; j<tableau.length; j++){
    		//bloqué
        SDL_Quit();
        return EXIT_SUCCESS;
    }
     
     
    void pause()
    {
        int continuer = 1;
        SDL_Event event;
     
        while (continuer)
        {
            SDL_WaitEvent(&event);
            switch(event.type)
            {
                case SDL_QUIT:
                    continuer = 0;
            }
        }
    }
    J'aimerai tracer ma courbe a partir des données de ce tableau obtenu avec une fonction. La premiere colonne represente x et la deuxieme y.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    tableau [0][0] : 124.320000  198.679993
    tableau [0][1] : 105.800003  187.300003
    tableau [0][2] : 86.360001  177.169998
    tableau [0][3] : 87.860001  155.500000
    tableau [0][4] : 83.339996  134.009995
    tableau [0][5] : 78.080002  109.230003

    Un grand merci pour vos futures réponses,
    Cdlt,

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Juin 2012
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 257
    Points : 321
    Points
    321
    Par défaut
    Bonjour,

    Je te conseille d'avoir un tableau d'une structure "Point" avec x et y.

    Ensuite tu fais une boucle sur i et tu traces des segments de droite (algo Bresenham) entre le Point[i] et le Point[i+1].

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 85
    Points : 67
    Points
    67
    Par défaut
    Merci de ta réponse. Par rapport à l'algo que tu m'as proposé, SDL est adaptée ou il faudrai que je passe sous OpenGL ou quelque chose comme ca ?

    Cdtl,

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Juin 2012
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 257
    Points : 321
    Points
    321
    Par défaut
    SDL est tout a fait adaptée en pixel par pixel.
    Pour tracer un segment entre 2 points le prototype est du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void segment(SDL_Surface* surf,int x1,int y1, int x2,int y2, Uint32 couleur);

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 85
    Points : 67
    Points
    67
    Par défaut
    Merci de ta réponse.

    Je vois bien utiliser la structure de point avec une fonction du type que tu m'as donné mais par contre faire interagir tout ça avec l'algorithme que tu m'as conseillé, je vois pas trop . Dans l'algorithme j'appellerai la fonction segment ?

  6. #6
    Membre averti
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Juin 2012
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 257
    Points : 321
    Points
    321
    Par défaut
    La fonction segment sert à tracer un segment de droite. L'algo est celui de cette fonction pour tracer les pixels du segment.
    Tu peux regarder :
    http://fvirtman.free.fr/recueil/02_03_03_line.c.php

  7. #7
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    De quel type de courbe s'agit-il ?

    Si la courbe est arbitraire ou de type spline, alors une subdivision en segments de droite est probablement la solution la plus simple. Si c'est un arc ou une suite d'arcs de cercle, une subdivision n'est pas forcément nécessaire car la formule est assez évidente.

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 85
    Points : 67
    Points
    67
    Par défaut
    Citation Envoyé par Matt_Houston Voir le message
    De quel type de courbe s'agit-il ?

    Si la courbe est arbitraire ou de type spline, alors une subdivision en segments de droite est probablement la solution la plus simple. Si c'est un arc ou une suite d'arcs de cercle, une subdivision n'est pas forcément nécessaire car la formule est assez évidente.
    Je ne vois pas trop ce que tu appelle arbitraire mais la droite est tracé à partir des valeurs que j'ai donné dans mon premier post avec le tableau.

    Cdtl,

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 85
    Points : 67
    Points
    67
    Par défaut
    C'est bon, j'ai réussi à avoir un resultat, merci de vos réponses!

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

Discussions similaires

  1. dessiner une courbe à partir d'un tableau de valeur
    Par bob75018 dans le forum C++Builder
    Réponses: 8
    Dernier message: 15/06/2007, 04h29
  2. [JGraph]dessiner une courbe à partir de données
    Par marwaza22 dans le forum 2D
    Réponses: 1
    Dernier message: 16/11/2006, 16h16
  3. dessiner une courbe avec OleExcel
    Par blondelle dans le forum C++Builder
    Réponses: 9
    Dernier message: 28/09/2006, 22h05
  4. dessiner une courbe
    Par rimacom dans le forum Débuter
    Réponses: 5
    Dernier message: 10/05/2006, 11h08
  5. dessiner une courbe composant chart
    Par tarekcom dans le forum Composants VCL
    Réponses: 7
    Dernier message: 09/05/2006, 22h01

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