Witam,
Mam problem z poniższym programem. Chodzi o to, aby była wyświetlana animacja polegająca na przesuwaniu litery J wzdłuż Cisoisy Dioklesa (zwykła krzywa z podanym wzorem w kodzie (x,y) ). Siedzę od dłuższego czasu i nie widzę, gdzie zrobiłem błąd.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <unistd.h>
/*OGOLNE WZORY:
x=(2*a*pow(t,2))/(1+pow(t,2));
y=(2*a*pow(t,3))/(1+pow(t,2)); */
/* a=2*/
/*FUNKCJE*/
int y(float t);
int x(float t);
void czysc(char tab[30][40]);
void funkcja(void);
void tablica(char tab[30][40]);
/*FUNKCJA GŁÓWNA*/
int main()
{
funkcja();
return 0;
}
int y (float t)
{
return(int)(((4*pow(t,3))/(1+pow(t,2))));
}
int x (float t)
{
return(int)((4*pow(t,2))/(1+pow(t,2)));
}
void funkcja(void)
{
float t=0;
float rt=0.5;
char tab[30][40];
for (t=4;t>=-4;t-=rt)
{
czysc(tab);
tab[y(t)][x(t)]='J';
printf("y=%d\tx=%d\n", y(t), x(t));
tablica(tab);
//usleep(250000);
}
}
void tablica(char tab[30][40])
{
int i, j;
for(i=0;i<=30;i++)
{
for(j=0;j<=40;j++)
{
printf("%c",tab[i][j]);
}
printf("\n");
}
}
void czysc(char tab[30][40])
{
int i, j;
for (i=0;i<=30;i++) for (j=0;j<=40;j++)
tab[i][j]=' ';
}