我在canvas中创建了一个对数螺旋,并沿着它绘制了圆圈。使用鼠标滚轮,您可以放大和缩小螺旋(这个功能正常) - 但是我在更新圆圈的大小以匹配缩放级别时遇到了问题...我不是数学专家!
当我尝试计算圆的半径时,有两个值:
初始大小:随着圆越靠近螺旋底部,它们变得越小。我觉得我已经非常接近了。
增长大小:每个圆必须增加的量,以便随着其接近查看者而准确增大。目前,圆在螺旋的开头和结尾似乎大小正确,但在中间太小了。
我已经通过一些令人不爽的数学方法拼凑了一些东西,我相信有一个实际的公式来调整这种大小。任何帮助都将不胜感激-我只想让圆圈与螺旋“贴合”并适当缩放。
这里是jsFiddle的参考
当我尝试计算圆的半径时,有两个值:
初始大小:随着圆越靠近螺旋底部,它们变得越小。我觉得我已经非常接近了。
增长大小:每个圆必须增加的量,以便随着其接近查看者而准确增大。目前,圆在螺旋的开头和结尾似乎大小正确,但在中间太小了。
我已经通过一些令人不爽的数学方法拼凑了一些东西,我相信有一个实际的公式来调整这种大小。任何帮助都将不胜感激-我只想让圆圈与螺旋“贴合”并适当缩放。
这里是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;
提前感谢您所提供的任何帮助...