SV/ACERCADE.CPP
2021-09-08 21:43:28 +02:00

246 lines
6.5 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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 Guilln");
// 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 Guilln
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 Guilln
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 Guilln
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());
}