2012-11-28 30 views
13

Tôi đang cố gắng vẽ tọa độ xung quanh một vòng tròn theo lập trình. Ở đây nó được mã hóa cứng để hiển thị những gì tôi sau:Cố gắng vẽ tọa độ xung quanh mép của hình tròn

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>");  

} 

Toán chắc chắn không phải là điểm mạnh của tôi.

Tôi cần phải đại diện cho mọi người dưới dạng Vòng kết nối nhỏ đứng xung quanh một vòng tròn lớn. Tuy nhiên, sẽ có số lượng người ngẫu nhiên và tất cả họ đều cần phải bằng nhau. Tôi không chắc liệu tôi có nên làm việc từ một điểm trung tâm hay không.

+0

Làm việc từ một điểm trung tâm là một ý tưởng tốt. Đối với một vòng tròn có tâm là '(a, b)' và có bán kính 'r', vị trí của một điểm trên cạnh của vòng tròn là' (a + r * cos (góc), b + r * sin (góc)) '. [Ở đây] (http://stackoverflow.com/questions/13383112/python-arrange-images-on-canvas-in-a-circle/13384396#13384396) là một vấn đề SO rất giống với vấn đề của bạn. – Kevin

Trả lời

27

Giả sử rằng (x0, y0) là trung tâm của vòng tròn của bạn, và r là bán kính:

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/ làm việc tuyệt vời chỉ cần tinh chỉnh nó cảm ơn;) – user1503606

+0

Yup, bạn có thể muốn trừ chiều rộng/chiều cao của điểm của bạn tùy thuộc vào góc phần tư kết quả kết thúc trong –

+2

cảm ơn John hiện đang làm việc cho tôi http://jsfiddle.net/jE26S/12/ – user1503606

Các vấn đề liên quan