#include <SFML/Graphics.hpp>
#include <iostream>
#include <vector>
#include <cmath>
// Función para evaluar la función de n grado
double evaluatePolynomial(const std::vector<double>& coefficients, double x) {
double result = 0.0;
for (size_t i = 0; i < coefficients.size(); ++i) {
result += coefficients[i] * pow(x, i);
}
return result;
}
int main() {
// Coeficientes de la función (ejemplo: 2x^2 + 3x + 1)
std::vector<double> coefficients = {1, 3, 2}; // 1 + 3x + 2x^2
// Crear una ventana
sf::RenderWindow window(sf::VideoMode(800, 600), "Grafica de función");
// Crear un conjunto de puntos para la gráfica
std::vector<sf::Vertex> points;
for (double x = -400; x < 400; x += 1) {
double y = evaluatePolynomial(coefficients, x / 100); // Escalar x
points.emplace_back(sf::Vector2f(400 + x, 300 - y * 100), sf::Color::Red); // Escalar y
}
while (window.isOpen()) {
sf::Event event;
while (window.pollEvent(event)) {
if (event.type == sf::Event::Closed)
window.close();
}
window.clear(sf::Color::White);
window.draw(&points[0], points.size(), sf::PrimitiveType::LineStrip);
window.display();
}
return 0;
}