Programa de animación de trayectoria de curva de programación en lenguaje C
#include
#include
#include
# incluir
#include
void drawstar(int x, int y, int c, int r, int color);
void drawb(int x, int y, int r, int color);
void drawb0(int color);
int count = 0;
int posx[3500], posy[3500];
int main()
{
int GraphDriver;
int GraphMode;
int arg = 0;
int a, b;
int paso = 5;
GraphDriver = DETECT;
initgraph(&GraphDriver, &GraphMode, "");
drawb(300, 150, 300, 12);
drawstar(posx[0], posy[ 0], 0, 15, 14);
mientras(1)
{
mientras(kbhit())
{
a = getch();
if (a == 13)
{
closegraph();
devuelve 0;
}
si (a == 0)
{
b = getch();
if (b == 75)/*Izquierda*/
{
drawstar(posx[arg], posy[arg], 0, 15, 0 );
arg -= paso;
if (arg < 0)
arg = recuento - 1;
drawb0(12 );
drawstar(posx[arg], posy[arg], 0, 15, 14);
}
if (b == 77) /*Derecha*/
{
drawstar(posx[arg], posy[arg], 0, 15, 0);
arg += paso ;
if (arg > count - 1)
arg = 0;
drawb0(12);
drawstar(posx[ arg], ramillete[arg], 0, 15, 14);
}
}
p>
}
}
}
estrella vacía (int x, int y, int c, int r, int color)
{
flotante x1, y1;
flotante x2, y2;
flotante x3, y3;
flotante x4 , y4;
float x5, y5;
const double pi = atan(1) * 4 / 180;
const double pic = pi * c;
setcolor(color);
x1 = x + r * cos(pi * 90 - pic);
y1 = y - r * sin(pi * 90 - pic);
x2 = x + r * cos(pi * 18 - pic);
y2 = y - r * sin(pi * 18 - pic);
x3 = x + r * cos(pi * 54 + pic);
y3 = y + r * sin(pi * 54 + pic);
x4 = x - r * cos(pi * 54 - pic);
y4 = y + r * sin(pi * 54 - pic);
x5 = x - r * cos(pi * 18 + pic);
y5 = y - r * sin(pi * 18 + pic);
moveto(x1, y1);
línea a (x3, y3);
línea a (x5, y5);
línea a (x2, y2);
línea a (x4, y4) );
lineto(x1, y1);
}
void drawb(int x, int y, int r, int color)
{
const double p = 3.14159265;
float r0, t;
float px, py;
float a = 100;
float b = 100;
r /= 2;
r -= 20;
for(t = 0; t <= p; t += 0.002)
{
px = (a + b) * cos(t) - b * cos(a + b) / b * t + x;
py = (a + b) * sin(t) - b * sin(a + b) / b * t + y;
putpixel(px , py, color);
posx[count] = px;
posy[count] = py;
count++;
}
}
void drawb0(int color)
{
int i;
para (i = 0; i < recuento; i++)
putpixel(posx[i], posy[i], color);
}