Witam!
Mam problem ze zrozumieniem kodu programu.
Program to powiewająca flaga na wietrze.
Flaga zbudowana jest z systemu punktów materialnych znajdujących się w tablicy dwuwskaźnikowej.
Punkty połączone są ze sobą sprężynami pionowymi, ukośnymi i poziomymi.
Rozumiem, że dla każdego rodzaju punktów (brzegowych, narożnych i środkowych) obliczana jest suma sił sprężystości działających na dany punkt.
Nie rozumiem natomiast na jakiej zasadzie obliczana jest siła parcia wiatru.
Fragment kodu:
[code]
for(int i = 0; i <= a; i++)
{
for(int j = 0; j <= b; j++)
{
if((i==a) && (j==0))
{
Fx[i][j]=-Fx1[i-1][j]+Fx2[i][j]-Fx4[i-1][j+1];//suma sił reakcji działających na punkt
Fy[i][j]=-Fy1[i-1][j]+Fy2[i][j]-Fy4[i-1][j+1];
Fz[i][j]=-Fz1[i-1][j]+Fz2[i][j]-Fz4[i-1][j+1];
a1=ax[i][j+1]-ax[i][j];
a2=ax[i-1][j]-ax[i][j];
b1=ay[i][j+1]-ay[i][j];
b2=ay[i-1][j]-ay[i][j];
c1=az[i][j+1]-az[i][j];
c2=az[i-1][j]-az[i][j];
norx=(b1*c2)-(b2*c1);// wyliczenie współrzednych iloczynu wektorowego
nory=(c1*a2)-(c2*a1);
norz=(a1*b2)-(a2*b1);
wiatrx[i][j]=norx*norx*wiatrX/sqrt((norx*norx)+(nory*nory)+(norz*norz));
wiatry[i][j]=nory*nory*wiatrY/sqrt((norx*norx)+(nory*nory)+(norz*norz));
wiatrz[i][j]=norz*norz*wiatrZ/sqrt((norx*norx)+(nory*nory)+(norz*norz));
}
else
if((i==a) && (j==b))
{
Fx[i][j]=-(Fx1[i-1][j]+Fx2[i][j-1]+Fx3[i-1][j-1]);
Fy[i][j]=-(Fy1[i-1][j]+Fy2[i][j-1]+Fy3[i-1][j-1]);
Fz[i][j]=-(Fz1[i-1][j]+Fz2[i][j-1]+Fz3[i-1][j-1]);
a1=ax[i-1][j]-ax[i][j];//współrzędne wektorów
a2=ax[i][j-1]-ax[i][j];// z których liczony jest iloczyn wektorowy
b1=ay[i-1][j]-ay[i][j];
b2=ay[i][j-1]-ay[i][j];
c1=az[i-1][j]-az[i][j];
c2=az[i][j-1]-az[i][j];
norx=(b1*c2)-(b2*c1);// wyliczenie współrzednych iloczynu wektorowego
nory=(c1*a2)-(c2*a1);
norz=(a1*b2)-(a2*b1);
wiatrx[i][j]=norx*norx*wiatrX/sqrt((norx*norx)+(nory*nory)+(norz*norz));
wiatry[i][j]=nory*nory*wiatrY/sqrt((norx*norx)+(nory*nory)+(norz*norz));
wiatrz[i][j]=norz*norz*wiatrZ/sqrt((norx*norx)+(nory*nory)+(norz*norz));
}
if ( wiatr = 0)//obliczanie wiatru jesli wieje
{
kat+=0.02;
for(int i = 0; i<= a; i++)
{
for(int j = 0; j <= b; j++)
wiatrX=0.01*cos(kat);
wiatrZ=0.001*sin(kat);
}[/code]
Dodatkowo podana jest obliczona siła wiatru. Zadeklarowany wcześniej kat = 0.
Flaga zbudowana jest z trójkątów.
Proszę o wyjaśnienie w jaki sposób obliczany jest wiatrx? Z fizycznego punktu widzenia.