2017-01-23 41 views
0

我正在尝试在神经科学实验中描绘的图像中重建螺旋模式。基本上,该图案具有以下特性:45度至径向创建螺旋条纹的功能?

1)螺旋的每个部分都具有局部取向45度至径向 2)螺旋的每个臂的厚度与半径成正比增加。

理想情况下,我希望能够根据需要参数化地改变螺旋臂的数量。您可以忽略中间的空白圆圈和圆形边界,这些都很容易添加。

是否有人知道是否有螺旋臂和局部方向的数量方面的功能,可以重建这种螺旋模式?对于我在Matlab中编码的价值,虽然如果有人有数学公式我可以自己实现它没有问题。

Red Spiral

+0

属性1和2有一个解决方案,对数螺线,但是这看起来不同的你图像 - 所以必须有另一个缺失的属性。对数螺旋具有“直的”手臂(保形地思考),但是看起来更弯曲,所以可能缺失的属性是曲率? – Claude

回答

1

你的螺旋图像不满足您的属性1中,如可通过用翻转拷贝覆盖所述螺旋可以看出(在外缘的角度是比45deg更垂直于径向方向,并且更在内侧边缘平行于):

spiral not satisfying properties

正如我评论,对数螺线能够满足这两种性质。我实现了它在GLSL使用Fragmentarium,这里是代码:

#include "Progressive2D.frag" 

#group Spiral 
uniform int Stripes; slider[1,20,100] 

const float pi = 3.141592653589793; 

vec2 cLog(vec2 z) 
{ 
    return vec2(log(length(z)), atan(z.y, z.x)); 
} 

vec3 color(vec2 p) 
{ 
    float t = radians(45.0); 
    float c = cos(t); 
    float s = sin(t); 
    mat2 m = mat2(c, -s, s, c); 
    vec2 q = m * cLog(p); 
    return vec3(float 
    ( mod(float(Stripes) * q.y/(sqrt(2.0) * pi), 1.0) < 0.5 
    || length(p) < 0.125 
    || length(p) > 0.875 
    )); 
} 

和输出:

spiral satisfying properties