246 lines
6.5 KiB
C++
246 lines
6.5 KiB
C++
#include<graphics.h>
|
||
#include<conio.h>
|
||
|
||
#include<stdio.h>
|
||
#include<dos.h>
|
||
#include <math.h>
|
||
|
||
|
||
#include "..\libs\make_bot\make_bot.h"
|
||
#include "sv_graph.h"
|
||
|
||
extern void textxy(int x, int y, char *text);
|
||
|
||
|
||
void Circulos(int PosX, int PosY, int RadioX, int RadioY, int Velocidad);
|
||
void Circulos2(int PosX, int PosY, int RadioX, int RadioY, int Velocidad);
|
||
void Circulos3(int PosX, int PosY, int RadioX, int RadioY, int Velocidad);
|
||
|
||
void Acerca_de(void){
|
||
struct boton Acerca;
|
||
|
||
Acerca.up = 140; Acerca.down = 380;
|
||
Acerca.left = 220; Acerca.right = 425;
|
||
ImprimeBoton (1, GRIS_C, BLANCO, GRIS_O, Acerca);
|
||
Acerca.up = 145; Acerca.down = 375;
|
||
Acerca.left = 225; Acerca.right = 420;
|
||
ImprimeBoton (1, GRIS_C, GRIS_O, BLANCO, Acerca);
|
||
|
||
textxy(240, 170, "Programa realizado por");
|
||
textxy(240, 210, " Jos‚ David Guill‚n");
|
||
|
||
// Circulos(322, 295, 50, 50, 5);
|
||
// getch();
|
||
/*2*/
|
||
Circulos3(322, 295, 50, 50, 5);
|
||
|
||
getch();
|
||
}
|
||
|
||
void Circulos(int PosX, int PosY, int RadioX, int RadioY, int Velocidad){
|
||
|
||
// Circulo con apariencia de 3D, por: Jos‚ David Guill‚n
|
||
|
||
int x=RadioX,
|
||
y=0,
|
||
oldx=RadioX,
|
||
giro = 0,
|
||
vez = 0,
|
||
ciclo = 1,
|
||
Angulo = 0;
|
||
|
||
|
||
do{
|
||
|
||
setcolor(GRIS_C);
|
||
ellipse(PosX, PosY, 0+ Angulo, 360+ Angulo, abs(oldx), RadioY );
|
||
ellipse(PosX, PosY, 0/*+*/- Angulo, 360/*+*/- Angulo, RadioX, abs(oldx) );
|
||
|
||
if(giro==1)/*{*/ setcolor(NEGRO); else setcolor(BLANCO);
|
||
|
||
/// ellipse(PosX, PosY, 90+ Angulo, 270+ Angulo, abs(x), /*abs(y)*/50 );
|
||
ellipse(PosX, PosY, 0+ Angulo, 90+ Angulo, abs(x), RadioY );
|
||
ellipse(PosX, PosY, 180- Angulo, 270- Angulo, abs(x), RadioY );
|
||
|
||
/// ellipse(PosX, PosY, 0+ Angulo, 180+ Angulo, /*abs(y)*/50, abs(x) );
|
||
ellipse(PosX, PosY, 90/*+*/- Angulo, 180/*+*/- Angulo, RadioX, abs(x));
|
||
ellipse(PosX, PosY, 270/*+*/- Angulo, 360/*+*/- Angulo, RadioX, abs(x) );
|
||
|
||
|
||
if(giro==1)/*{*/ setcolor(BLANCO); else setcolor(NEGRO);
|
||
|
||
/// ellipse(PosX, PosY, 270+ Angulo, 90+ Angulo, abs(x), /*abs(y)*/50 );
|
||
ellipse(PosX, PosY, 90+ Angulo, 180+ Angulo, abs(x), RadioY );
|
||
ellipse(PosX, PosY, 270+ Angulo, 360+ Angulo, abs(x), RadioY );
|
||
|
||
/// ellipse(PosX, PosY, 180+ Angulo, 360+ Angulo, /*abs(y)*/50, abs(x) );
|
||
ellipse(PosX, PosY, 0/*+*/- Angulo, 90/*+*/- Angulo, RadioX, abs(x) );
|
||
ellipse(PosX, PosY, 180/*+*/- Angulo, 270/*+*/- Angulo, RadioX, abs(x) );
|
||
|
||
|
||
oldx = x;
|
||
|
||
x--;
|
||
if(x<=-(RadioX-1) ) x=RadioX;
|
||
y--;
|
||
if(y<=-(RadioY-1) ) y=RadioY;
|
||
|
||
if(ciclo == 0 && x == RadioX ) { ciclo = 1; vez = 0; } else
|
||
if(ciclo == 1 && x == RadioX ) { ciclo = 0; vez = 1; }
|
||
|
||
if(vez==0){
|
||
if(x<0) giro=1; else giro=0;
|
||
}
|
||
if(vez==1){
|
||
if(x<0) giro=0; else giro=1;
|
||
}
|
||
delay(20);
|
||
|
||
Angulo+= Velocidad; if( Angulo== 360 ) Angulo=0;
|
||
|
||
}while(!kbhit());
|
||
|
||
}
|
||
|
||
void Circulos2(int PosX, int PosY, int RadioX, int RadioY, int Velocidad){
|
||
|
||
// Circulo con apariencia de 3D, por: Jos‚ David Guill‚n
|
||
|
||
int x=RadioX,
|
||
y=0,
|
||
oldx=RadioX, oldx2 = RadioX, oldx3 = RadioX,
|
||
giro = 0,
|
||
vez = 0,
|
||
ciclo = 1,
|
||
Angulo = 0;
|
||
|
||
|
||
do{
|
||
|
||
setcolor(GRIS_C);
|
||
ellipse(PosX, PosY, 0+ Angulo, 360+ Angulo, abs(oldx), RadioY );
|
||
ellipse(PosX, PosY, 0/*+*/- Angulo, 360/*+*/- Angulo, RadioX, abs(oldx) );
|
||
|
||
if(giro==1)/*{*/ setcolor(NEGRO); else setcolor(BLANCO);
|
||
|
||
/// ellipse(PosX, PosY, 90+ Angulo, 270+ Angulo, abs(x), /*abs(y)*/50 );
|
||
ellipse(PosX, PosY, 0+ Angulo, 90+ Angulo, abs(x), RadioY );
|
||
ellipse(PosX, PosY, 180- Angulo, 270- Angulo, abs(x), RadioY );
|
||
|
||
/// ellipse(PosX, PosY, 0+ Angulo, 180+ Angulo, /*abs(y)*/50, abs(x) );
|
||
ellipse(PosX, PosY, 90/*+*/- Angulo, 180/*+*/- Angulo, RadioX, abs(x));
|
||
ellipse(PosX, PosY, 270/*+*/- Angulo, 360/*+*/- Angulo, RadioX, abs(x) );
|
||
|
||
|
||
if(giro==1)/*{*/ setcolor(BLANCO); else setcolor(NEGRO);
|
||
|
||
/// ellipse(PosX, PosY, 270+ Angulo, 90+ Angulo, abs(x), /*abs(y)*/50 );
|
||
ellipse(PosX, PosY, 90+ Angulo, 180+ Angulo, abs(x), RadioY );
|
||
ellipse(PosX, PosY, 270+ Angulo, 360+ Angulo, abs(x), RadioY );
|
||
|
||
/// ellipse(PosX, PosY, 180+ Angulo, 360+ Angulo, /*abs(y)*/50, abs(x) );
|
||
ellipse(PosX, PosY, 0/*+*/- Angulo, 90/*+*/- Angulo, RadioX, abs(x) );
|
||
ellipse(PosX, PosY, 180/*+*/- Angulo, 270/*+*/- Angulo, RadioX, abs(x) );
|
||
|
||
oldx = oldx2;
|
||
oldx2 = oldx3;
|
||
oldx3 = x;
|
||
|
||
|
||
x--;
|
||
if(x<=-(RadioX-1) ) x=RadioX;
|
||
y--;
|
||
if(y<=-(RadioY-1) ) y=RadioY;
|
||
|
||
if(ciclo == 0 && x == RadioX ) { ciclo = 1; vez = 0; } else
|
||
if(ciclo == 1 && x == RadioX ) { ciclo = 0; vez = 1; }
|
||
|
||
if(vez==0){
|
||
if(x<0) giro=1; else giro=0;
|
||
}
|
||
if(vez==1){
|
||
if(x<0) giro=0; else giro=1;
|
||
}
|
||
delay(20);
|
||
|
||
Angulo+= Velocidad; if( Angulo== 360 ) Angulo=0;
|
||
|
||
}while(!kbhit());
|
||
|
||
}
|
||
|
||
void Circulos3(int PosX, int PosY, int RadioX, int RadioY, int Velocidad){
|
||
|
||
// Circulo con apariencia de 3D, por: Jos‚ David Guill‚n
|
||
|
||
int x=RadioX,
|
||
y=0,
|
||
oldx=RadioX, oldx2 = RadioX, oldx3 = RadioX,
|
||
giro = 0,
|
||
vez = 0,
|
||
ciclo = 1,
|
||
Angulo = 0;
|
||
|
||
|
||
do{
|
||
|
||
setcolor(GRIS_C);
|
||
ellipse(PosX, PosY, 0+ Angulo, 360+ Angulo, abs(oldx), RadioY );
|
||
ellipse(PosX, PosY, 0/*+*/- Angulo, 360/*+*/- Angulo, RadioX, abs(oldx) );
|
||
|
||
if(giro==1)/*{*/ setcolor(NEGRO); else setcolor(BLANCO);
|
||
|
||
/// ellipse(PosX, PosY, 90+ Angulo, 270+ Angulo, abs(x), /*abs(y)*/50 );
|
||
ellipse(PosX, PosY, 0+ Angulo, 90+ Angulo, abs(x), RadioY );
|
||
ellipse(PosX, PosY, 180- Angulo, 270- Angulo, abs(x), RadioY );
|
||
|
||
/// ellipse(PosX, PosY, 0+ Angulo, 180+ Angulo, /*abs(y)*/50, abs(x) );
|
||
ellipse(PosX, PosY, 90/*+*/- Angulo, 180/*+*/- Angulo, RadioX, abs(x));
|
||
ellipse(PosX, PosY, 270/*+*/- Angulo, 360/*+*/- Angulo, RadioX, abs(x) );
|
||
|
||
|
||
if(giro==1)/*{*/ setcolor(BLANCO); else setcolor(NEGRO);
|
||
|
||
/// ellipse(PosX, PosY, 270+ Angulo, 90+ Angulo, abs(x), /*abs(y)*/50 );
|
||
ellipse(PosX, PosY, 90+ Angulo, 180+ Angulo, abs(x), RadioY );
|
||
ellipse(PosX, PosY, 270+ Angulo, 360+ Angulo, abs(x), RadioY );
|
||
|
||
/// ellipse(PosX, PosY, 180+ Angulo, 360+ Angulo, /*abs(y)*/50, abs(x) );
|
||
ellipse(PosX, PosY, 0/*+*/- Angulo, 90/*+*/- Angulo, RadioX, abs(x) );
|
||
ellipse(PosX, PosY, 180/*+*/- Angulo, 270/*+*/- Angulo, RadioX, abs(x) );
|
||
|
||
oldx = oldx2;
|
||
oldx2 = oldx3;
|
||
oldx3 = x;
|
||
|
||
|
||
x--;
|
||
if(x<=-(RadioX-1) ) x=RadioX;
|
||
y--;
|
||
if(y<=-(RadioY-1) ) y=RadioY;
|
||
|
||
if(ciclo == 0 && x == RadioX ) { ciclo = 1; vez = 0; } else
|
||
if(ciclo == 1 && x == RadioX ) { ciclo = 0; vez = 1; }
|
||
|
||
if(vez==0){
|
||
if(x<0) giro=1; else giro=0;
|
||
}
|
||
if(vez==1){
|
||
if(x<0) giro=0; else giro=1;
|
||
}
|
||
delay(20);
|
||
|
||
Angulo+= Velocidad; if( Angulo== 360 ) Angulo=0;
|
||
|
||
|
||
////////////////////////////////////////////////////////
|
||
////////////////////////////////////////////////////////
|
||
giro = 1;
|
||
////////////////////////////////////////////////////////
|
||
////////////////////////////////////////////////////////
|
||
|
||
|
||
}while(!kbhit());
|
||
|
||
}
|