为什么这些椭圆不能正确放置?

时间:2016-11-25 18:18:12

标签: javascript processing trigonometry

显然我需要练习更多的触发器。我试图围绕中心轴定位等于categories.length的圆圈。这是我正在使用的代码(p5.js):

var categoryX, categoryY;

   for (var j=0; j<categories.length; j++){                
        categoryX = width/2 + (250*cos(frameCount/3000) * cos(j*PI/categories.length));                
        categoryY = height/2 + (250*sin(frameCount/3000) * cos(j*PI/categories.length));         
        ellipse(categoryX, categoryY, 250, 250);    

圆圈应随时间移动(因此为frameCount),但也应沿圆的不同弧度开始。此代码不起作用。

谁能告诉我为什么?

1 个答案:

答案 0 :(得分:2)

你不应该乘以(共)正弦。相反,将它们的参数一起添加以用于一个(共)正弦。我还认为你希望用2π而不是π多次 j ,所以你覆盖整个圆弧围绕中心点:

cos(frameCount/3000 + j*2*PI/categories.length)

正弦相同。

所以代码将成为:

var categoryX, categoryY;

for (var j=0; j<categories.length; j++){                
    categoryX = width/2 + 250*cos(frameCount/3000 + j*2*PI/categories.length);
    categoryY = height/2 + 250*sin(frameCount/3000 + j*2*PI/categories.length);
    ellipse(categoryX, categoryY, 250, 250);
    // ...
}