math - 沿螺旋动态调整圆圈大小

标签 math canvas sizing spiral

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

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

初始大小:这使得圆圈越往下越小。我想我已经很接近了。

增长规模:这是每个圆圈在靠近观察者时必须增加才能准确增大大小的量。目前,圆圈在螺旋的开头和结尾似乎是正确的大小,但在中间太小了。

我已经编写了一些笨拙的数学方法,并且我确信对于这种大小调整有一个实际的公式。任何帮助将不胜感激——我只是想让圆圈感觉“依附”在螺旋上并适本地缩放。

Here is the jsFiddle for reference

// 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;

spiral

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

最佳答案

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

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

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

关于math - 沿螺旋动态调整圆圈大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23088340/

相关文章:

math - 如何在程序集8086中找到位数?

javascript - 获取带模数的数字的位值?

python - 在 Sagemath 中提取数字的第 n 位数字

javascript - 如何缩放到 Canvas 中心,而不是上下文中心

javascript - 为什么 javascript 中的 html2canvas 不支持谷歌地图和图表?

swift - SpriteKit 使图像适合屏幕,而不是拉伸(stretch)过去

Javascript 正弦/余弦泰勒展开

javascript - 如何在 Samsung Note 2 上使用 toDataURL 创建 JPG 数据字符串

ruby-on-rails - 如何计算平均请求持续时间?

python - 使用 Tkinter 实现滚动条时 Canvas 大小的问题