Dessiner une fonction en mode console avec winbgim.h (dev-c++)

Contenu du snippet

Ce code permet de dessiner une fonction polynôme ici en l'occurence x² en mode console. On utilise ici une librairie winbgim.h qui est l'équivalent de graphics.h pour les compilateurs de Borland.
Pour télécharger les fichiers nécessaires allez sur le site:
http://www.cs.colorado.edu/~main/bgi/

télécharger: winbgim.h et winbgim.cpp dans le répertoire Dev-C++\Include
et libbgi.a dans Dev-C++\Lib

Avant de compiler le source il faut aller dans Project-->Project Options et taper :
-lbgi -lgdi32 dans le label Futher object files or linker options.

Source / Exemple :


#include <winbgim.h>
#include <conio.h>

#define MAXX 640
#define MAXY 480

/* prototypes et declarations */
float screen_y(float, float, float);
float screen_y(float, float, float);

float screen_x(float xb, float x, float xe)
{
	return ((x-xb)/(xe-xb)*MAXX);
}

float screen_y(float yb, float y, float ye)
{
	return (MAXY-(y-yb)/(ye-yb)*MAXY);
}

void main(void)
{
	
	int drv=VGA, mode=VGAHI;
	float a,b,c,xb,xe,yb,ye,x,y;

	
	a=1;
	b=0;
	c=0;
	xb=-10;
	xe=10;
	yb=-10;
	ye=150;
	

	initgraph(&drv,&mode,"");

	/* Dessine les axes x et y */
	setcolor(4);
	line(0,screen_y(yb,0,ye),MAXX,screen_y(yb,0,ye));
	line(screen_x(xb,0,xe),0,screen_x(xb,0,xe),MAXY);

	setcolor(15);
	moveto(0,screen_y(yb,a*xb*xb+b*xb+c,ye));
	for(x=xb;x<=xe;x+=(xe-xb)/MAXX)
	{
		y=a*x*x+b*x+c;
		lineto(screen_x(xb,x,xe),screen_y(yb,y,ye));
	}
	getch();
	closegraph();
	return(0);
}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.