2013-06-29 10 views
7

Ho un rettangolo in tela e so come spostarlo verso l'alto e lateralmente. Quello che voglio fare è muoverlo con un movimento circolare.Canvas move object in circle

Quindi i miei oggetti (rettangolo) xey andrebbero in cerchio.

Ora sto assumendo che ho bisogno di un raggio per quanto lontano e qualche formula per la velocità (1pixel) per farlo ruotare sull'asse.

Qualche idea?

risposta

13

L'equazione parametrica per muoversi in un cerchio è questo:

x=r*cos(theta) 
y=r*sin(theta) 

theta è l'angolo, e r il raggio.

Se volete sapere il cambiamento di theta per ottenere la velocità desiderata, risolvendo per la distanza d si ottiene che il cambiamento di theta è: arccos(1-(d/r)^2/2)

Le funzioni JavaScript sono Math.cos, Math.sin, e Math.acos, respsectively . Tutti hanno a che fare con i radianti.

+0

Potrebbe o qualcuno fornirmi un jsFiddle su come aggiungere le librerie matematiche o come sono connesse? –

+0

La libreria matematica è già disponibile nel browser. – simonzack

+4

Ecco un Fiddle che mostra la matematica: http://jsfiddle.net/m1erickson/Qnk5d/ – markE