In seguito alla mia domanda precedente : ho la palla che rimbalza abbastanza realisticamente dalle superfici che colpisce. Ora vorrei farlo girare per l'attrito del colpo .
Mostrarlo è abbastanza semplice: faccio ruotare la pallina in base alla sua velocità angolare ad ogni tick e applico la stessa rotazione quando viene renderizzata.
Quando una palla colpisce un muro, so che la velocità di rotazione è influenzata da ...
- la velocità iniziale della palla quando colpisce la superficie
- i coefficienti di attrito della sfera e della superficie (costanti fisiche)
- l' angolo di incidenza (l'angolo tra il vettore di velocità in entrata della palla e la normale alla superficie).
L'angolo di incidenza è approssimato dal prodotto punto dell'impatto della palla e dai vettori di velocità di uscita. (1 significa rotazione alta, -1 significa nessuna rotazione e tutto il resto relativamente in mezzo)
Moltiplicando tutto quanto sopra e assicurandosi che siano stati poi trasformati nell'intervallo 0 - 1 e moltiplicati per la massima velocità di rotazione, la palla sembrava rispondere alla velocità di rotazione come previsto. Tranne una cosa: ruoterebbe sempre in senso orario (a causa di valori positivi).
È un buon metodo? Riesci a pensare a un modo più semplice?
Se questo metodo sembra a posto, cosa mi sto perdendo? Come faccio a sapere quando la palla dovrebbe ruotare in senso antiorario?