Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Afficher / dessiner des axes x,z dans une fenêtre?  (Lu 3780 fois)

0 Membres et 1 Invité sur ce sujet

Frozziak96

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
    • E-mail
Afficher / dessiner des axes x,z dans une fenêtre?
« le: Juin 18, 2017, 10:49:12 pm »
Bonjour à tous,

Voilà je suis nouveau sur le topic! La question est dans le titre. J'ai essayé maintes fois avec des lignes de type sf::Vertex, mais sans succès. J'aimerais afficher des axes, dans mon cas x,z pour un projet 2D, avec la possibilité de définir le point (0,0) à l'intersection des axes. Merci, bien à vous.


Envoyé de mon iPhone en utilisant Tapatalk

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: Afficher / dessiner des axes x,z dans une fenêtre?
« Réponse #1 le: Juin 19, 2017, 07:42:54 am »
Citer
J'ai essayé maintes fois avec des lignes de type sf::Vertex, mais sans succès
Montre nous donc ce que tu as fait.
Laurent Gomila - SFML developer

Cpl.Bator

  • Hero Member
  • *****
  • Messages: 540
    • Voir le profil
Re: Afficher / dessiner des axes x,z dans une fenêtre?
« Réponse #2 le: Juin 21, 2017, 12:44:14 am »
Citer
J'ai essayé maintes fois avec des lignes de type sf::Vertex, mais sans succès
Montre nous donc ce que tu as fait.

Bonjour Laurent, si il y a une chose que l'on ne peut pas te retirer, c'est ta patience, si tout mes collaborateurs pouvaient avoir la tienne, mon entreprise s'en porterait à merveille ^^ 

Frozziak96

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
    • E-mail
Re: Afficher / dessiner des axes x,z dans une fenêtre?
« Réponse #3 le: Juin 23, 2017, 12:56:48 pm »
Bonjour, merci pour votre réponse mais, une simple petite explication sur comment procéder me suffit amplement et pourrait aider des personnes dans mon cas. Mes lignes change tout le temps de place malgré la position donné , je vais essayer de vous envoyer mon code au plus vite, je n'ai pas mon ordinateur en ce moment . Merci à bientôt .


Envoyé de mon iPhone en utilisant Tapatalk

Frozziak96

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
    • E-mail
Re: Afficher / dessiner des axes x,z dans une fenêtre?
« Réponse #4 le: Juin 23, 2017, 04:21:53 pm »
Voici mon code! J'ai réussi a corriger la position, cependant je sais pas si c'est la bonne méthode pour faire ce genre de choses? Merci à bientôt.

#include <SFML\Graphics.hpp>
#include <SFML\System.hpp>
#include <SFML\Window.hpp>
#include <iostream>
#include <sstream>
 
#pragma region Variables
sf::RenderWindow window; // set window
sf::Text fps_txt; // set fps inf
sf::Text info_txt;
sf::Font font; // set font
#pragma endregion Variables
 
const sf::Vector2f WINDOW_SIZE(1280, 720); // window size
int FRAMELIMIT = 60; // frames limit
float FRAMECOUNT = 0; // frames count
 
int main()
{
    window.create(sf::VideoMode(WINDOW_SIZE.x, WINDOW_SIZE.y), "Ufact v1.0", sf::Style::Default); // create the window
    window.setFramerateLimit(FRAMELIMIT); // set frames limit for reduce the CPU load
 
    sf::Clock clock; // create clock
 
    if (!font.loadFromFile("fonts/arial.ttf"))
    {
        // error...
    }
 
    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
            {
                window.close(); // close the window
            }
            break;
        }
 
        sf::Time time = clock.getElapsedTime();
        FRAMECOUNT = 1.f / time.asSeconds();
        clock.restart().asSeconds(); // restart clock
 
        std::ostringstream fps; // string buffer to convert numbers to string
        fps << "Frames : " << FRAMECOUNT; // put float into string buffer
 
        // fps txt
        fps_txt.setFont(font); // set font to txt
        fps_txt.setCharacterSize(12); // set size
        fps_txt.setPosition(5, 5); // set position of txt
        fps_txt.setString(fps.str()); //ss.str() converts the string buffer into a regular string
        // info txt
        info_txt.setFont(font);
        info_txt.setCharacterSize(12);
        info_txt.setPosition(1175, 700);
        info_txt.setString("Ufact v1.0 ©2017");
 
        sf::Vertex ly[] =
        {
            sf::Vertex(sf::Vector2f(WINDOW_SIZE.x / 2, 0), sf::Color::Blue),
            sf::Vertex(sf::Vector2f(WINDOW_SIZE.x / 2, WINDOW_SIZE.y), sf::Color::Blue)
        };
        sf::Vertex lx[] =
        {
            sf::Vertex(sf::Vector2f(WINDOW_SIZE.x, WINDOW_SIZE.y / 2), sf::Color::Red),
            sf::Vertex(sf::Vector2f(0, WINDOW_SIZE.y / 2),sf::Color::Red)
        };
 
        window.draw(lx, 2, sf::Lines);
        window.draw(ly, 2, sf::Lines);
        window.draw(fps_txt);
        window.draw(info_txt);
        window.display();
        window.clear();
    }
 
    return 0;
}

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: Afficher / dessiner des axes x,z dans une fenêtre?
« Réponse #5 le: Juin 23, 2017, 06:54:46 pm »
Je ne vois rien à redire. Si tu affiches toujours les deux axes ensemble, tu peux même n'utiliser qu'un seul vertex array de 4 lignes.
Laurent Gomila - SFML developer

Frozziak96

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
    • E-mail
Re: Afficher / dessiner des axes x,z dans une fenêtre?
« Réponse #6 le: Juin 23, 2017, 09:58:30 pm »
Je ne vois rien à redire. Si tu affiches toujours les deux axes ensemble, tu peux même n'utiliser qu'un seul vertex array de 4 lignes.

Merci beaucoup pour votre réponse, je vais faire comme ça. [emoji4]


Envoyé de mon iPhone en utilisant Tapatalk