Mam do wykonania nastepujace zadanie:
//Stworzyc symulator potencjalu grawitacyjnego dfa dowolnej liczby cial o punktowych rozmiarach, zadanych masach i polozeniach na plaszczyznie.
//Specyfikacja:
//- dowolne rozmiary obszaru okreslone przez uzytkowanika przy uruchomieniu programu
//- dowolna liczba cial (oznaczonych kolejnymi literami alfabetu 'A'=asci 65), mozliwosc dodawania i usuwania cial oraz zmiany ich parametrow (masy i polozenia)
//- wyswietlana wartosc kodowana w sposob dyskretny za pomoca cyfr od 9 (najmniejsza wartosc) do 0 (najwieksza wartosc)
//mozliwosc wydrukwoania do pliku dokladnej wartosci wypadkowego potencjalu dla poszczegolnych "pikseli".
Jednak zatrzymalem sie na takim etapie. Ktos wie jak to zrobic dalej?
# include <stdio.h>
# include <stdlib.h>
# include <math.h>
struct pot
{
int x;
int y;
float masa;
};
void wypelnij(int **tab, int xd, int yd)
{
int i,j;
for(i=0;i<xd;i++)
{
for(j=0;j<yd;j++) {
tab[i][j]=1;
if(tab[i][j]<=yd)
printf(" ");
printf("%d ", tab[i][j]);
}
printf("\n");
}
}
int main(void)
{
int xdim, ydim, i, j; //deklaracja zmiennych
int **tablica;
int a, b, x, y;
float V1, G, masa, r1, r2;
struct pot p1;
struct pot p2;
struct pot p3;
G=-6,67384;
p1.x=x;
p1.y=y;
p2.x=x;
p2.x=x;
p3.y=y;
p3.y=y;
p1.masa=masa;
p2.masa=masa;
p3.masa=masa;
srand(time(NULL));
printf("Podaj rozmiary tablicy: ");
scanf("%d %d", &xdim, &ydim);
tablica = (int **)malloc(xdim * sizeof(*tablica)); //tablica wskaznikow
for(i=0;i<xdim;i++)
{
tablica[i]=(int *)malloc(ydim * sizeof(**tablica)); //rezerwacja odpowiedniej ilosci pamieci dla kazdego wskaznika
}
wypelnij(tablica, xdim, ydim);
printf("\np1x %d p2x %d p1y %d p2y %d", p1.x, p2.x, p1.y, p2.y); //liczenie R1
r1=sqrt(((p1.x-p2.x)*(p1.x-p2.x))+((p1.y-p2.y)*(p1.y-p2.y)));
printf("\n%f\n", r1);
//liczenie R2
r2=sqrt(((p2.x-p3.x)^2)+((p2.y-p3.y)^2));
printf("\n%f\n", r2);
//liczenie potencjalu w punkcie podanym przez uzytkownika
V1=(-G*masa)/r1;
printf("Potencjal w danym punkcie wynosi %f", V1);
for(i=0;i<xdim;i++)
{
free(tablica[i]); //zwalniamy poszczegolne tablice
}
free(tablica); //zwalniamy tablice wskaznikow
getchar();
getchar();
return 0;
}