2012-11-28 30 views
13

Sto provando a tracciare le coordinate attorno a un cerchio a livello di codice. Qui si è hard-coded per mostrare quello che sono dopo:Tentativo di tracciare le coordinate attorno al bordo di un cerchio

http://jsfiddle.net/jE26S/1/

var iteration = 4; 
var left = [94,200,104,-6]; 
var top = [-6,94,200,94];  

for(var i=0; i<iteration; i++){ 

    $("#center").append("<div class='point' style='left:"+left[i]+"px;top:"+top[i]+"px'></div>");  

} 

matematica non è sicuramente il mio punto di forza.

Ho bisogno di rappresentare le persone come piccole cerchie intorno a un grande cerchio. Tuttavia, ci saranno numeri casuali di persone e tutti dovranno essere equidistanti. Non sono sicuro se dovrei lavorare da un punto centrale.

+0

lavoro da un punto centrale è una buona idea. Per un cerchio il cui centro è '(a, b)' e ha raggio 'r', la posizione di un punto sul bordo del cerchio è' (a + r * cos (angolo), b + r * sin (angolo)) '. [Qui] (http://stackoverflow.com/questions/13383112/python-arrange-images-on-canvas-in-a-circle/13384396#13384396) è un problema SO che è molto simile al tuo. – Kevin

risposta

27

Supponendo che (x0, y0) è il centro del cerchio, e r è il raggio:

var items = 4; 
for(var i = 0; i < items; i++) { 

    var x = x0 + r * Math.cos(2 * Math.PI * i/items); 
    var y = y0 + r * Math.sin(2 * Math.PI * i/items); 
    $("#center").append("<div class='point' style='left:"+ x +"px;top:"+ y +"px'></div>");  

} 
+0

http://jsfiddle.net/jE26S/5/ funziona incredibilmente andando a sintonizzarlo grazie;) – user1503606

+0

Sì, probabilmente vorrai sottrarre la larghezza/altezza del tuo punto a seconda di quale quadrante il risultato finisce in –

+2

grazie John questo ora sta lavorando per me http://jsfiddle.net/jE26S/12/ – user1503606

Problemi correlati