C/Visual C - pendulo en visual c++

 
Vista:

pendulo en visual c++

Publicado por carmen (1 intervención) el 20/02/2003 22:38:04
Hola : quisiera saber como se hace un pendulo en visual c++ con clases, por favor es urgente, les estare muy agradecida..
Carmen Ballena
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

Implementación de un péndulo en Visual C++ usando clases

Publicado por Alejandro (1153 intervenciones) el 06/05/2025 17:59:44
Hola Carmen,

Aquí tienes un ejemplo básico de cómo podrías implementar un péndulo en Visual C++ utilizando clases. Este ejemplo incluye una clase `Pendulum` que simula el movimiento de un péndulo simple.

Ejemplo de código en C++



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
48
49
50
51
52
53
54
55
56
57
58
#include <iostream>
#include <cmath>
#include <SFML/Graphics.hpp> // Asegúrate de tener SFML instalada
 
class Pendulum {
private:
    float length; // Longitud del péndulo
    float angle;  // Ángulo en radianes
    float angularVelocity; // Velocidad angular
    float angularAcceleration; // Aceleración angular
    float gravity; // Gravedad
 
public:
    Pendulum(float len, float ang) : length(len), angle(ang), angularVelocity(0), angularAcceleration(0), gravity(9.81) {}
 
    void update() {
        // Ecuación del péndulo simple
        angularAcceleration = (-1 * gravity / length) * sin(angle);
        angularVelocity += angularAcceleration;
        angle += angularVelocity;
 
        // Damping para simular la resistencia del aire
        angularVelocity *= 0.99;
    }
 
    void draw(sf::RenderWindow &window) {
        float x = length * sin(angle);
        float y = length * cos(angle);
 
        sf::Vertex line[] = {
            sf::Vertex(sf::Vector2f(400, 0)), // Punto de anclaje
            sf::Vertex(sf::Vector2f(400 + x * 100, y * 100)) // Punto del péndulo
        };
 
        window.draw(line, 2, sf::Lines);
    }
};
 
int main() {
    sf::RenderWindow window(sf::VideoMode(800, 600), "Pendulum simulation");
    Pendulum pendulum(1.0f, M_PI / 4); // Longitud de 1.0 m y ángulo inicial de 45 grados
 
    while (window.isOpen()) {
        sf::Event event;
        while (window.pollEvent(event)) {
            if (event.type == sf::Event::Closed)
                window.close();
        }
 
        pendulum.update();
 
        window.clear();
        pendulum.draw(window);
        window.display();
    }
 
    return 0;
}

Explicación del código



1. Clase Pendulum: Esta clase tiene atributos para la longitud del péndulo, el ángulo, la velocidad angular, la aceleración angular y la gravedad. El constructor inicializa estos valores.

2. Método update(): Este método calcula la nueva posición del péndulo utilizando las ecuaciones del movimiento del péndulo simple. También aplica un factor de amortiguamiento para simular la resistencia del aire.

3. Método draw(): Utiliza la biblioteca SFML para dibujar el péndulo en la ventana. Calcula las coordenadas del extremo del péndulo y dibuja una línea desde el punto de anclaje.

4. Función main(): Crea una ventana y un objeto `Pendulum`. En un bucle, actualiza la posición del péndulo y lo dibuja en la ventana.

Notas



- Asegúrate de tener la biblioteca SFML instalada y configurada en tu proyecto de Visual C++ para que el código funcione correctamente.
- Puedes ajustar la longitud del péndulo y el ángulo inicial en el constructor de la clase `Pendulum`.

Espero que esto te ayude a comenzar con tu proyecto de péndulo. ¡Buena suerte!
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