2017-01-23 42 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