4

我在画布上创建了一个对数螺旋,并沿着它绘制了圆圈。使用鼠标滚轮,您可以放大和缩小螺旋(有效)——但我在更新圆圈的大小以匹配缩放级别时遇到问题......我不是数学专家!

尝试计算圆半径时,我使用了两个值:

初始大小:这使得圆圈越靠近螺旋线越小。我想我已经很接近了。

增长大小:这是每个圆圈在靠近观察者时必须增加的数量才能准确地增长。目前,圆圈在螺旋的起点和终点似乎是正确的大小,但在中间太小了。

我拼凑了一些简陋的数学,我确信这种尺寸有一个实际的公式。任何帮助将不胜感激——我只想让圆圈感觉“附着”在螺旋上并适当地缩放。


这是 jsFiddle 供参考

// a = starting radius of spiral
// spiralNum = spiral length (100.6)
// timeOffset = scroll position
// node_count_visible = number of total circles

offset = (this.spiralNum - 0.05 - this.node_count_visible) + id + (this.timeOffset/30);

var initial = Math.exp(b * offset)/4;
var growth = (a/8.5);
node.radius = initial + growth;

螺旋

预先感谢您提供的任何帮助...

4

1 回答 1

1

我能够通过做得到你正在寻找的影响

node.radius = a * Math.exp(b * offset)/6;

6是任意数字来调整圆的大小。

于 2014-04-15T18:35:32.987 回答