Witam.
Od jakiegoś czasu męczę się z problemem symulacji dyfrakcji światła w WinAPI. Mianowicie problem mam z załamaniem światła na szczelinach. Nie wiem jak obliczyć "jasność" światła, które się odbija. Dla kąta 0 przyjmuje wartość 255(jako składowa RGB) natomiast nie mogę sobie poradzić z tym jak obliczyć kolor dla dowolnego kąta.
Jako efekt chcę uzyskać symulację podobną do tej na wikipedii, jednak kiedy obliczam kolor z podanego tam wzoru na I0 wychodzą śmiesznie małe liczby (dla kąta 45 wychodzi 0,0776) :/
Może nie z tego wzoru korzystam albo korzystam źle?
int main(int argc, char** argv) {
double kat = 45;
kat = rad(kat);
double I0 = 255;
double d = 380;
double sigma = 380;
double wynik = 0;
wynik = ((M_PI*d)/sigma)*sin(kat);
if(wynik != 0)
wynik = sin(rad(wynik))/wynik;
else
wynik = 1;
wynik = I0*pow(wynik, 2);
cout << wynik;
return 0;
}
Funkcja rad zamienia stopnie na radiany.