C/Visual C - Urgente!! grafico de pulsos

 
Vista:

Urgente!! grafico de pulsos

Publicado por san (3 intervenciones) el 21/02/2003 00:47:47
Necesito saber como podría dibujar pulsos (unos y ceros), al final de cuentas cómo puedo graficar líneas?? soy principiante, disculpen
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Cómo dibujar pulsos y graficar líneas en Visual C++ usando SFML

Publicado por Alejandro (1153 intervenciones) el 06/05/2025 20:31:41
Para dibujar pulsos (unos y ceros) y graficar líneas en Visual C++, puedes utilizar una biblioteca gráfica como SFML (Simple and Fast Multimedia Library) o GDI (Graphics Device Interface) que viene con Windows. A continuación, te mostraré un ejemplo básico utilizando SFML, que es más fácil de usar para principiantes.

Ejemplo de código en C++ usando SFML



Primero, asegúrate de tener SFML instalada y configurada en tu proyecto de Visual C++. Luego, puedes usar el siguiente código para dibujar pulsos y líneas.

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
#include <SFML/Graphics.hpp>
#include <vector>
 
class PulseGraph {
private:
    std::vector<int> pulses; // Vector para almacenar los pulsos (1s y 0s)
 
public:
    PulseGraph(const std::vector<int>& data) : pulses(data) {}
 
    void draw(sf::RenderWindow& window) {
        float width = 20.0f; // Ancho de cada pulso
        float height = 100.0f; // Altura máxima del pulso
        float spacing = 10.0f; // Espaciado entre pulsos
 
        for (size_t i = 0; i < pulses.size(); ++i) {
            sf::RectangleShape pulse(sf::Vector2f(width, pulses[i] * height)); // Altura basada en el valor (1 o 0)
            pulse.setPosition(i * (width + spacing), height - pulse.getSize().y); // Posición del pulso
            pulse.setFillColor(pulses[i] == 1 ? sf::Color::Green : sf::Color::Red); // Color según el valor
            window.draw(pulse);
        }
    }
};
 
int main() {
    sf::RenderWindow window(sf::VideoMode(800, 600), "Pulse graph");
 
    // Datos de ejemplo: 1s y 0s
    std::vector<int> pulseData = {1, 0, 1, 1, 0, 0, 1, 1, 0, 1};
 
    PulseGraph pulseGraph(pulseData);
 
    while (window.isOpen()) {
        sf::Event event;
        while (window.pollEvent(event)) {
            if (event.type == sf::Event::Closed)
                window.close();
        }
 
        window.clear(sf::Color::Black); // Limpiar la ventana
        pulseGraph.draw(window); // Dibujar los pulsos
        window.display(); // Mostrar el contenido
    }
 
    return 0;
}

Explicación del código



1. Clase PulseGraph: Esta clase almacena un vector de pulsos (1s y 0s) y tiene un método `draw` que se encarga de dibujar los pulsos en la ventana.

2. Método draw(): Para cada pulso en el vector, se crea un `RectangleShape` que representa el pulso. La altura del rectángulo se basa en el valor del pulso (1 o 0). Se establece la posición y el color del pulso (verde para 1 y rojo para 0).

3. Función main(): Crea una ventana y un objeto `PulseGraph` con datos de ejemplo. En un bucle, se manejan los eventos de la ventana y se dibujan los pulsos.

Notas



- Asegúrate de tener SFML instalada y configurada correctamente en tu proyecto.
- Puedes modificar el vector `pulseData` para probar diferentes secuencias de pulsos.

Este ejemplo te permitirá visualizar pulsos en forma de líneas. ¡Buena suerte, San!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar