SENO_GRAF.c



/* GRAFICA LA FUNCION SENO DESDE UN ARCHIVO */


#include<graphics.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

FILE *Origen;
char X[10], Y[10];

int Conv_X(double Val)
{
	int Xc = Val*500/(2*M_PI);		// (Val)(500)/2PI
	return Xc + 50;	
}

int Conv_Y(double Val)
{
	int Yc = -(Val * 200);
	return 250 + Yc;
}

void Pos(char *CAD)
{
	
	int k=0, Pos = 0;

	while( CAD[Pos] != ',' )
	{
		X[Pos] = CAD[Pos];
		Pos++;
	}
	Pos++;
	while( CAD[Pos] != '\0' )
	{
		Y[k] = CAD[Pos];
		k++;
		Pos++;
	}
	//printf("%s\t%s", X,  Y);
}

void Grafica( )
{
	double k = 0, Yfun=0, Xval, Yval;
	int Xpixel, Ypixel, Pos_Coma, Longitud;
	int Px1, Px2, Py1, Py2, Flag;
	Px1 = Px2 = Py1 = Py2 = Flag = 0;

	char CAD[80];

	Origen = fopen("VAL_SENO.txt","r");
	if ( Origen==NULL )
	{
		printf( "Problemas con el archivo.\n" );
		exit( 1 );
	}

	fgets(CAD, 30, Origen);
	while ( feof(Origen) == 0 )
	{
		Pos(CAD);
		Xval = atof(X);
		Yval = atof(Y);
		//printf("%s\t%s", X,  Y);
		Xpixel = Conv_X(Xval);
		Ypixel = Conv_Y(Yval);
		//printf("%d\t%d\n", Xpixel, Ypixel);
		//circle(Xpixel, Ypixel, 1);
		if ( Flag )
		{
			Px2 = Xpixel;
			Py2 = Ypixel;
			line(Px1, Py1, Px2, Py2);
			Px1 = Px2;
			Py1 = Py2;
		} else
			{
				Px1 = Xpixel;
				Py1 = Ypixel;
				Flag = 1;
			}

		fgets(CAD, 30, Origen);

	}
	fclose(Origen);	
}

void Ejes( )
{
	setcolor(YELLOW);
	line(50,  50, 50,  450);		// eje y
	line(25, 250, 550, 250);		// eje x
}

int main()
{
	int gd = DETECT,gm;
	initgraph(&gd,&gm,NULL);
	Ejes( );
	Grafica( );
	delay(60000);
	closegraph();
	return 0;
}