Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Dzielenie przez zero i ślepota.

Ostatnio zmodyfikowano 2013-11-04 20:25
Autor Wiadomość
ridic14
Temat założony przez niniejszego użytkownika
Dzielenie przez zero i ślepota.
» 2013-11-04 19:52:48
Program się wywala... a debugger mówi że dzielę przez 0... Tylko gdzie ?

C/C++
angle =(( rand() % 6283 ) + 1 ) / 1000; //m_randomizer.Random( 0.0f, 6.283f );
std::cout << angle << std::endl;
particle->vel.x =( rand() %( int )( cos( angle ) * 1000 ) ) / 1000; //m_randomizer.Random( 0.0f, cos( angle ) );
particle->vel.y =( rand() %( int )( sin( angle ) * 1000 ) ) / 1000; //m_randomizer.Random( 0.0f, sin( angle ) );

jak wiadomo w rand() trzeba podać liczbę całkowitą, a jakoż potrzebuję liczby z przecinkiem, tak sobie radzę... jak widać coś nie tak...

P-95292
pekfos
» 2013-11-04 19:55:55
% to reszta z dzielenia.
P-95293
ridic14
Temat założony przez niniejszego użytkownika
» 2013-11-04 20:08:39
zmieniłem kod:
C/C++
angle =(( rand() % 6283 ) + 1 ) / 1000.f; //m_randomizer.Random( 0.0f, 6.283f );
std::cout << angle << std::endl;
particle->vel.x =( rand() %( int )( cos( angle ) * 1000 ) ) / 1000.f; //m_randomizer.Random( 0.0f, cos( angle ) );
particle->vel.y =( rand() %( int )( sin( angle ) * 1000 ) ) / 1000.f; //m_randomizer.Random( 0.0f, sin( angle ) );

Teraz mam już liczby zmiennoprzecinkowe...

Ale dalej mam dzielenie przez 0...

Tu ma coś do rzeczy ten '%' to przez niego to?
P-95296
akwes
» 2013-11-04 20:20:01
Dzielenie czy dzielenie z resztą jest bez różnicy bo dzielnik nie może być zerem. Jeżeli rzutujesz na int wartości mniejsze od 1 to są zaokrąglane do zera.
P-95298
pekfos
» 2013-11-04 20:20:35
% to reszta z dzielenia. Jak myślisz, jaka może być reszta z dzielenia przez zero (poza tym, że UB)?
P-95299
ridic14
Temat założony przez niniejszego użytkownika
» 2013-11-04 20:25:49
Dobra już wiem o co chodzi. Dzięki :D
P-95301
« 1 »
  Strona 1 z 1