¿Cómo puedo representar gráficamente por pantalla una función programando en C++?

Necesito hacer una grafica en C++ podria ayudarme tengo q graficar Lo siguiente: y=e^(-x/5) * cos (x) y no tengo idea de como hacerLo...gracias...
ahorita Lo unico q he hecho es:
#include<graphics.h>
#include<conio.h>
#include<math.h>
void inicializacion (void);
int graphdriver  = VGA;
int graphmode = 2;
double e,x,y;
void main(){
inicializacion();
y=e^(-x/5) * cos (x);
getch ();
}
void inicializacion (void){
initgraph(& graphdriver, & graphmode,"");
cleardevice();
}
Pero no saLe La gráfica...

1 Respuesta

Respuesta
1
Pues lo único que estás haciendo es inicializando la pantalla de gráficos.
El procedimiento para graficar es el mismo que seguirías si lo hicieras a mano, (te aconsejo que primero grafiques algunos puntos a mano en un papel cuadriculado) o sea algo así:
1. Dibujar los ejes y acotarlos (si es que te interesa acotarlos). Puedes hacer una función para ello, usando la función line(int x1, int y1, int x2, int y2) de la biblioteca de graphics. Recuerda que en la pantalla de gráficos las coordenadas son números enteros (pixeles) y el punto (0,0) corresponde al extremo superior izquierdo de la pantalla, por lo que la "y" aumenta hacia abajo y la por hacia la derecha. Prueba trazando primero una línea horizontal y otra vertical, puedes usar las funciones maxx() y maxy() que te regresan los valores máximos de por y y. Es conveniente tener dos variables para las coordenadas del origen en pixeles.
Para hacer las acotaciones tendrás que decidir cuántos pixeles quieres usar por unidad, igual que cuando gráficas en una hoja cuadriculada y luego proceder a dibujar líneas como de 4 pixeles con un ciclo, sobre el eje por y sobre el y para las acotaciones.
Una vez que hayas logrado dibujar los ejes, continua con:
2. Haz una función que evalúe la función matemática con cualquier valor de por en pixeles y que te regrese el valor de y en pixeles (o sea números enteros). Dependiendo de la cantidad de pixeles que hayas elegido para cada unidad esta función hará el ajuste a pixeles. Por ejemplo si elegiste 10 pixeles por unidad, 0.1 será igual a 1 pixel.    Entonces x=xpix/10 donde x es double y y la calculas con y=exp(-x/5)* cos (x) o mejor con la forma  y=cos(x)/exp(x/5); luego la conviertes a ypix con algo asi ypix=(int)y* 10; y regresas el valor de y en pixeles.
3. En la función principal inicializas la pantalla, haces un ciclo en donde vayas: dándole valores a por, calculando el de y de uno en uno (pixeles) (con la función que hiciste en el punto 2), conviertes el valor de xpix y ypix que te regresa la función a valores con respecto al origen de los ejes, (cuidado con "y" porque aumenta hacia abajo y disminuye hacia arriba) con estos valores "enciendes" el pixel correspondiente en la pantalla, con la función putpixel (int por, int y, int color), del color que quieras y terminas tu ciclo, luego detienes la pantalla con un getch() para que se vea la gráfica y luego la apagas con closegraph(). Si lo haces bien te debe funcionar para valores positivos o negativos.
Espero que te sirva esta explicación. Ahhh y no estamos programando en Cpp porque no hicimos ninguna clase, si quieres hacerlo con clases es lo mismo, y habrá que hacer dos clases una para la pantalla de gráficos y otra para la gráfica. Y en la función principal crear dos objetos uno de la pantalla y otro de la gráfica.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas