Come creereste un programma in cui due oggetti si muovono casualmente sullo schermo MA non si scontrano mai? [chiuso]

0

sono liberi di spostarsi ovunque sullo schermo con le linee rette o curve, purché non si trovino nello stesso posto in un dato momento.

btw non sto chiedendo come scriverlo in codice, ma piuttosto la logica se lo farai? 1- come faresti spostare un oggetto a caso? (ignorando le funzioni o le classi predefinite .. etc) 2-come ti assicuri che non colpiscano mai?

    
posta Osama Al Jalad 17.08.2014 - 09:50
fonte

2 risposte

5

Dal punto di vista della fisica, la collisione è solo il caso estremo di una forza repulsiva tra gli oggetti. Se vuoi che si evitino automaticamente a vicenda, un modo semplice sarebbe quello di introdurre una forza graduale che li respinge a seconda di quanto sono vicini l'uno all'altro. Ad esempio, le forze elettriche soddisfano

force ∝ 1 / distance^2

Poiché questo non ha bisogno di essere fisico, puoi modificare il coefficiente e / o l'esponente, indipendentemente dal fatto che desideri rendere gli oggetti migliori evitando l'altro. Neanche è necessario rispettare una legge di potenza, puoi introdurre qualsiasi campo di forza complicato finché è ripugnante:

force = f(d) R

dove d è la distanza di separazione, f è una funzione che diventa sempre più grande vicino a 0 e R è il vettore di unità che definisce la direzione tra i due oggetti.

Da una diversa angolazione, se puoi controllare la "casualità" del movimento, puoi anche influenzarlo in modo tale che non si colpiranno mai, ma ciò richiede che il tuo programma sia in grado di prevedere il movimento di altro oggetto.

Ci sono molti diversi tipi di movimento "casuale": potresti voler essere specifico su quale tipo ti interessi. Se vuoi che il movimento appaia continuo e uniforme, puoi aggiungere modifiche casuali ma piccole alla velocità vettore (cioè la grandezza e la direzione) in ogni fotogramma dell'animazione. O se vuoi che sia a scatti, puoi rendere le modifiche casuali più drastiche.

    
risposta data 17.08.2014 - 10:26
fonte
0

Se possono spostarsi casualmente su un transatlantico semplicemente lasciare che entrambi si spostino casualmente a destra e sinistra mentre non si trovano alla stessa altezza.

    
risposta data 17.08.2014 - 15:52
fonte

Leggi altre domande sui tag