Documentos de Académico
Documentos de Profesional
Documentos de Cultura
h>
#include<stdlib.h>
#include<stdio.h>
#include <cstdlib>
#include <iostream>
#include <iomanip>
#include <list>
#include <fstream>
#include <dir.h>
#include <math.h>
///VARS_GLOB////////////////////////////////////////////////////////
list<float> lasx,lasy,flag;
float truco=1,btnn=0,dedo=1,bandera=0,cheka,parax=0, paray=0,basura=1,dibujar=1;
float PI=3.1416,teta=45,cuanto,mayorx=0,menorx=0, mayory=0, menory=0, Xf=0,
Yf=0;
int si=0;
int x,y,xb,yb;
////////////////////////////////////////////////////////////////////
int welcome()
{
setcolor(19);
setbkcolor(15);
setlinestyle(10,10,10);
boton(300,0,2,0,0,0,"Transformaciones geometricas hecho por:");
boton(300,50,3,0,0,0,"Fátima Gpe.Torres Suárez");
boton(300,100,4,0,0,0,"Luis Flores Ramos");
boton(300,150,5,0,0,0,"Ismael Gacía Ordóñez");
}
int principio()
{
initwindow(1024,650);
setwindowtitle("Transformaciones Geometricas");
welcome();
delay(5000);
pantalla();
registermousehandler(WM_LBUTTONDOWN,OnClick);
trazar();
system("PAUSE");
closegraph();
return 0;
}
int limpiar()
{
if(dibujar==1)
{
pantalla();
ofstream clic;
clic.open("flag.txt");
if(!clic.is_open())
{
cout << "No se puede guardar el archivo " << endl;
}
else
{
list<float>::iterator it = flag.begin();
while( it != flag.end() )
{
flag.pop_back();
*it++;
}
clic.close();
remove("flag.txt");
ofstream x;
x.open("lasx.txt");
if(!x.is_open())
{
cout << "No se puede guardar el archivo " << endl;
}
else
{
list<float>::iterator it = lasx.begin();
while( it != lasx.end() )
{
lasx.pop_back();
*it++;
}
x.close();
remove("lasx.txt");
ofstream y;
y.open("lasy.txt");
if(!y.is_open())
{
cout << "No se puede guardar el archivo " << endl;
}
else
{
list<float>::iterator it = lasy.begin();
while( it != lasy.end() )
{
lasy.pop_back();
*it++;
}
y.close();
remove("lasy.txt");
//lasy.pop_back();
}
bandera=0;
//dibujar=0;
void clearMouseClick(void)
{
clearmouseclick(WM_LBUTTONDOWN);
clearmouseclick(WM_RBUTTONDOWN);
delay(50);
}
int cartesiano(void)
{
int x1=0,x2=850,y1=0,y2=650;
int mediox=x2/2,medioy=y2/2;
int intervalo = 30, longitud=4,secuencias=0,i;
char texto[5];
cleardevice();
rectangle(0,0,850,650);
line(mediox,y1,mediox,y2);
line(x1,medioy,x2,medioy);
secuencias=mediox/intervalo-4;
for(i=1;i<=secuencias;i++)
{
line(mediox-longitud,medioy-(intervalo*i),mediox+longitud,medioy-(intervalo*i));
outtextxy(mediox+longitud,medioy-(intervalo*i),itoa(intervalo*i,texto,10));
line(mediox-longitud,medioy+(intervalo*i),mediox+longitud,medioy+
(intervalo*i));
outtextxy(mediox+longitud,medioy+(intervalo*i),itoa(intervalo*i*-1,texto,10));
}
secuencias=medioy/intervalo;
for(i=1;i<=secuencias;i++)
{
line(mediox-(intervalo*i),medioy-longitud,mediox-(intervalo*i),medioy+longitud);
outtextxy(mediox-(intervalo*i),medioy-longitud-20,itoa(intervalo*i*-1,texto,10));
line(mediox+(intervalo*i),medioy-longitud,mediox+
(intervalo*i),medioy+longitud);
outtextxy(mediox+(intervalo*i),medioy-longitud-20,itoa(intervalo*i,texto,10));
}
return EXIT_SUCCESS;
closegraph();
}
y.open("lasy.txt");
if(!y.is_open())
{
cout << "No se puede guardar el archivo " << endl;
}
else
{
list<float>::iterator it = lasy.begin();
while( it != lasy.end() )
{
y << *it++ << endl;
}
y.close();
}
}
flag.push_back(clic);
if(!flag.empty())
{
ofstream clik;
clik.open("flag.txt");
if(!clik.is_open())
{
cout << "No se puede guardar el archivo " << endl;
}
else
{
list<float>::iterator it = flag.begin();
while( it != flag.end() )
{
clik << *it++ << endl;
}
clik.close();
}
}
}
float trasladar()
{
if(dibujar==1)
{
list<float>::iterator itex = lasx.begin();
list<float>::iterator itey = lasy.begin();
list<float>::iterator clic = flag.begin();
if(cheka==0)
{
list<float>::iterator iteradorx = lasx.begin();
while( iteradorx != lasx.end() )
{
*iteradorx=*iteradorx+(cuanto);
if(!lasx.empty())
{
ofstream archivo;
archivo.open("lasx.txt");
if(!archivo.is_open())
{
cout << "No se puede guardar el archivo " << endl;
}
else
{
list<float>::iterator it = lasx.begin();
while( it != lasx.end() )
{
archivo << *it++ << endl;
}
archivo.close();
}
}
*iteradorx++;
}
}
if(cheka==1)
{
if(!lasy.empty())
{
ofstream archivoy;
archivoy.open("lasy.txt");
if(!archivoy.is_open())
{
cout << "No se puede guardar el archivo " << endl;
}
else
{
list<float>::iterator ity = lasy.begin();
while( ity != lasy.end() )
{
archivoy << *ity++ << endl;
}
archivoy.close();
}
}
*iteradory++;
}
}
pantalla();
int calcular()
{
//////////////////////////////////////////////////////
list<float>:: iterator max= lasx.begin();
while(max != lasx.end())
{
if(*max>mayorx){ mayorx=*max;}
*max++;
}
//////////////////////////////////////////////////////
list<float>:: iterator min= lasx.begin();
menorx=*min;
while(min != lasx.end())
{
if(*min<menorx){ menorx=*min;}
*min++;
}
//////////////////////////////////////////////////////
list<float>:: iterator maxy= lasy.begin();
while(maxy != lasy.end())
{
if(*maxy>mayory){ mayory=*maxy;}
*maxy++;
}
//////////////////////////////////////////////////////
list<float>:: iterator miny= lasy.begin();
menory=*miny;
while(miny != lasy.end())
{
if(*miny<menory){ menory=*miny;}
*miny++;
}
//////////////////////////////////////////////////////
Xf=((mayorx-menorx)/2)+ menorx;
Yf=((mayory-menory)/2)+menory;
float escalar()
{
if(!lasx.empty())
{
ofstream archivo;
archivo.open("lasx.txt");
if(!archivo.is_open())
{
cout << "No se puede guardar el archivo " << endl;
}
else
{
list<float>::iterator it = lasx.begin();
while( it != lasx.end() )
{
archivo << *it++ << endl;
}
archivo.close();
}
}
*iteradorx++;
}
if(!lasy.empty())
{
ofstream archivoy;
archivoy.open("lasy.txt");
if(!archivoy.is_open())
{
cout << "No se puede guardar el archivo " << endl;
}
else
{
list<float>::iterator ity = lasy.begin();
while( ity != lasy.end() )
{
archivoy << *ity++ << endl;
}
archivoy.close();
}
}
*iteradory++;
}
pantalla();
float rotar()
{
a=*iteradorx-Xf;
b=*iteradory-Yf;
a=(int)a;
b=(int)b;
*iteradorx=(int)(a*cos(cuanto));
*iteradorx=(int)(Xf+*iteradorx - b *sin(cuanto));
*iteradory=(int)(b*sin(cuanto));
*iteradory=(int)(Yf+*iteradory +( a *cos(cuanto)));
if(!lasx.empty())
{
ofstream archivo;
archivo.open("lasx.txt");
if(!archivo.is_open())
{
cout << "No se puede guardar el archivo " << endl;
}
else
{
list<float>::iterator it = lasx.begin();
while( it != lasx.end() )
{
archivo << *it++ << endl;
}
archivo.close();
}
}
if(!lasy.empty())
{
ofstream archivoy;
archivoy.open("lasy.txt");
if(!archivoy.is_open())
{
cout << "No se puede guardar el archivo " << endl;
}
else
{
list<float>::iterator ity = lasy.begin();
while( ity != lasy.end() )
{
archivoy << *ity++ << endl;
}
archivoy.close();
}
}
*iteradory++;
*iteradorx++;
}
pantalla();
int pantalla()
{
setcolor(8);
setbkcolor(15);
setlinestyle(2,2,2);
rectangle(0,0,850,650);
cartesiano();
boton(2,0,2,0,0,0,"Define tu punto de inicio con click derecho");
boton(900,50,1005,80,15,0,"GIRAR ->");
boton(900,90,1005,110,15,0,"TRASLADAR +x");
boton(900,120,1005,150,15,0,"TRASLADAR -x");
boton(900,160,1005,190,15,0,"TRASLADAR +y");
boton(900,200,1005,230,15,0,"TRASLADAR -y");
boton(900,240,1005,270,15,0,"ZOOM +");
boton(900,280,1005,310,15,0,"ZOOM -");
boton(900,500,1005,520,15,0,"SALIR");
}
int trazar()
{
do
{
btnn = getMouseClick(x,y);
dibujar=1;
else
{
if(bandera==1 && btnn==1)
{
basura=0;
lineto(x,y);
clics(1);
guardar(x,y,1);
else
{
if(btnn==2 && bandera==1)
{
moveto(x,y);
if(basura==0)
{
clics(2);
lasx.push_back(x);
lasy.push_back(y);
}
basura=1;
}
}
}
else
rectangle(0,0,850,650);
if(kbhit())break;
}while(1);
}
}
if((xb>=900 && xb<=1005) && (yb>=90 && yb<=110))
{
boton(900,90,1005,110,8,7,"TRASLADAR +x");
delay(300);
boton(900,90,1005,110,15,0,"TRASLADAR +x");
calcular();
cheka=0;
cuanto=10;
trasladar();