问题标签 [spiral]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
2559 浏览

algorithm - Matrix and algorithm "spiral"

i wanted ask if there some algorithm ready, that allowed me to do this: i have a matrix m (col) x n (row) with m x n elements. I want give position to this element starting from center and rotating as a spiral, for example, for a matrix 3x3 i have 9 elements so defined:

or for una matrix 4 x 3 i have 12 elements, do defined:

or again, a matrix 5x2 i have 10 elements so defined:

etc. I have solved basically defining a array of integer of m x n elements and loading manually the value, but in generel to me like that matrix maked from algorithm automatically. Thanks to who can help me to find something so, thanks very much.

UPDATE

This code, do exactely about i want have, but not is in delphi; just only i need that start from 1 and not from 0. Important for me is that it is valid for any matrics m x n. Who help me to translate it in delphi?

Thanks again very much.

0 投票
7 回答
11671 浏览

python - 在扩展的圆形螺旋中迭代二维数组

给定一个nby nmatrix M,在 rowi和 column j,我想以圆形螺旋遍历所有相邻值。

这样做的目的是测试某个函数 ,f它取决于 M ,以找到(i, j)返回f的半径True。所以,f看起来像这样:

并会这样称呼:

circle_around以圆形螺旋返回(迭代器)索引的函数在哪里。因此,对于 中的每个点,此代码将计算并存储从返回M的那个点开始的半径。fTrue

如果有更有效的计算方式R,我也会对此持开放态度。


更新:

感谢所有提交答案的人。我编写了一个简短的函数来绘制circle_around迭代器的输出,以显示它们的作用。如果您更新答案或发布新答案,您可以使用此代码来验证您的解决方案。

结果如下 plot(circle_around(0, 0), "F.J")FJ的circle_around

plot(circle_around(0, 0, 10), "WolframH")WolframH 的 circle_around

我将 Magnesium 的建议编码如下:

plot(circle_around(0, 0, 10), "magnesium")镁的circle_around

如您所见,满足我正在寻找的界面的结果都没有产生一个圆形螺旋,该螺旋覆盖了 0、0 附近的所有索引。FJ 是最接近的,尽管 WolframH 的命中点正确,只是不是螺旋命令。

0 投票
1 回答
1891 浏览

python - 图像螺旋像素搜索

我试图弄清楚如何以螺旋形状从中心向外进行像素(颜色)搜索。不像正常的“从左到右像素搜索”。

到目前为止,我已经进行了一些简单的 xy 搜索。使用标准 PIL。但它的速度很慢。因为在我的情况下,结果似乎总是更接近(图像的)中心。问题是它不是方形图像,所以中心位置可以是 2 个或更多像素(不是A中心,而是“两个”+ 像素居中),这就是我“松开它”的地方。你能偷看吗给我一些提示?我总是从屏幕截图 PIL-> ImageGrab.grab()工作,使用image.size获取图像大小,使用px=image.getpixel((x, y))获取当前像素位置

我正在使用 R、G、B 颜色:如果 px[0] == r 和 px[1] == g 和 px[2] == b:

0 投票
1 回答
339 浏览

flash - 如何在 Flash CS5 中创建遵循指定变形路径的​​补间形状?

我试图从一个圆圈开始,让那个圆圈逐渐变成一个螺旋,但我只希望形状从螺旋的末端开始补间,而不是整个形状本身,有没有办法在没有逐帧的情况下做到这一点动画?

0 投票
5 回答
8810 浏览

c++ - 创造向外的螺旋

我一直在考虑这个问题,我只是想不出一种方法来填充一个向外螺旋的矩阵,这样我就可以做到以下几点:

转动这个:1 2 3 4 5 ... n

我的问题是算法本身,但如果你可以用 C++ 来代替伪代码,那就更好了。

这是我为测试而编写的一些代码,但我真的不知道如何才能做到这一点。

谢谢!

0 投票
6 回答
4283 浏览

algorithm - 找到矩形平铺螺旋的第 n 个元素?

获取矩形平铺螺旋的第 n 个元素的算法是什么?

这里是n

这里是对应的坐标n

如果给定n,如何计算坐标?

0 投票
2 回答
4178 浏览

ios - 使用贝塞尔曲线绘制螺旋

这是针对 iPad 应用程序的,但它本质上是一道数学题。

我需要绘制一个不同(单调增加)线宽的圆弧。在曲线的开始,它会有一个起始厚度(比如说 2pts),然后厚度会平滑地增加,直到弧线的末端达到最大厚度(比如说 12pts)。

我认为最好的方法是创建一个 UIBezierPath 并填充形状。我的第一次尝试是使用两个圆弧(具有偏移中心),并且在 90° 以内都可以正常工作,但圆弧通常在 90° 到 180° 之间,因此这种方法不会削减它。

厚度增加的 90 度圆弧示例

我目前的方法是使用贝塞尔四边形或三次曲线制作一个轻微的螺旋形(一个从圆弧略微增长,一个略微缩小)。问题是我将控制点放在哪里,以便圆弧的偏差(也就是形状“厚度”)是我想要的值。

约束:

  • 形状必须能够以任意角度开始和结束(彼此在 180° 以内)
  • 形状的“厚度”(与圆的偏差)必须以给定值开始和结束
  • “厚度”必须单调增加(不能变大再变小)
  • 它必须看起来光滑,不能有任何急弯

我也对其他解决方案持开放态度。

0 投票
1 回答
2147 浏览

c - 使用 OpenGL 绘制费马螺旋

我正在做一个使用 OpenGL 绘制它的方法,绘图是 2D 的。

我知道这个理论,你可以在维基百科中找到定义,但我不知道我做错了什么。问题是当我使用平方根的负解来绘制点时。

这就是我调用此方法的方式,并且定义了我的绘图空间。

就像解决方案一样。 在此处输入图像描述

0 投票
4 回答
16387 浏览

algorithm - 在螺旋上画等距点

我需要一种算法来计算螺旋路径上的点分布。

该算法的输入参数应为:

  • 环的宽度(距最内环的距离)
  • 点之间的固定距离
  • 要绘制的点数

要绘制的螺旋线是阿基米德螺旋线,获得的点必须彼此等距

该算法应打印出单点笛卡尔坐标的序列,例如:

第 1 点:(0.0) 第 2 点:(..., ...) ........ 第 N 点 (..., ...)

编程语言并不重要,非常感谢所有帮助!

编辑:

我已经从这个站点获取并修改了这个例子:

但是点的配置是错误的,点之间的距离不是等距的。

非等距分布的螺旋

正确的分布示例是左边的图像:

西拉尔

0 投票
1 回答
497 浏览

java - 我的对数螺旋函数计算不正确

我不太确定在哪里问这个问题(在数学和这里之间)

我尝试使用此公式绘制对数螺旋

在此处输入图像描述

它可以工作(它在屏幕上显示一个螺旋),但是当我改变螺距(a)时,螺旋不会改变他的螺距,只有旋转和大小(并且将 a 设置为 1 应该形成一个圆圈,但它不会)

我试过那些:

(a 和 b 是常数,开始 = -4*PI,结束 = 4*PI)

(a 和 b 是常数,开始 = 0,结束 = 10)

我猜我在公式中犯了一个大错误,但我没有看到其中一个。如果有帮助,我可以提供输出图片,但我不知道如何

编辑:我确实成功地使用 r = a exp(θ cot b) 使它工作

但我仍然不明白为什么其他公式没有成功,这就是我编辑这个问题而不是回答它的原因。