Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Simuliranje procesa - alg

[es] :: Art of Programming :: Simuliranje procesa - alg

[ Pregleda: 2291 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

BIG FOOT

Član broj: 2964
Poruke: 449
*.ptt.yu.



Profil

icon Simuliranje procesa - alg20.03.2005. u 21:21 - pre 231 meseci
Pozdrav!
Zadatak:
" Kugla se pravolinijski krece po bilijarskom stolu(ugao 45stepeni). Odrediti prvih 10 tacaka odbijanja."

radim u PAS-u ali moze i samo recima kako bi izgledao taj algortam.


2. Kako da odredim koliko ce puta kugla preseci sopstvenu putanju.

Poz,
BF
 
Odgovor na temu

blaza
n/a

Član broj: 961
Poruke: 743
*.yu1.net.



+3 Profil

icon Re: Simuliranje procesa - alg21.03.2005. u 01:04 - pre 231 meseci
Evo straightforward resenja. Za broj preseka putanje, pokusaj da pamtis sve duzi od kojih se putanja sastoji, te trazi medjusobne preseke.
Code:

float a = 6, b = 5;//sirina i duzina stola, respektivno
//centar je u (0,0)
float x = 0,y = 0;//pocetne koordinate kugle (mora da vazi |x| <= a/2 i |y| <= b/2)
float xv = -1.0, yv = 1.0;//vektor smera kretanja koji moze uzeti jedino vrednosti (1, 1), (1, -1), (-1, 1) i (-1, -1)

int main(void){
    for(int i = 1; i <= 10;){
        float sx = a / 2.0 - x * xv;
        float sy = b / 2.0 - y * yv;
        if(sx < sy){
            x += sx * xv;
            y += sx * yv;
            xv = -xv;
            if(sx == 0.0) 
                        continue;
        }
        else{
            x += sy * xv;
            y += sy * yv;
            yv = -yv;
            if(sy == 0.0)
                        continue;
        }
        cout << i++ << "-i sudar u koordinati (" << x << ", " << y << ")\n";
    }
}

O_o
 
Odgovor na temu

[es] :: Art of Programming :: Simuliranje procesa - alg

[ Pregleda: 2291 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.