2017-01-23 17 views
0

신경 과학 실험을 위해 묘사 된 이미지에서 나선형 패턴을 재구성하려고합니다. 기본적으로이 패턴의 속성은 다음과 같습니다.오리엔테이션이있는 나선형 줄무늬를 생성하는 기능이 방사형으로 45도입니까?

1) 나선형의 모든 부분은 반지름이 45 ° 인 반지름이 입니다. 2) 나선형의 각 아암의 두께는 반지름에 정비례하여 증가합니다.

이상적으로 필자는 필요에 따라 나선형 팔의 수를 매개 변수 적으로 변경할 수 있기를 바랍니다. 가운데와 원형 경계에서 빈칸을 무시할 수 있습니다. 추가하기가 매우 쉽습니다.

이 나선형 패턴을 재구성 할 수있는 나선형 팔 및 로컬 방향의 수와 관련하여 기능이 있는지 아는 사람이 있습니까? 내가 Matlab에서 코딩하고있는 것은 가치가있다. 누군가가 수학 공식을 가지고 있다면 나는 그것을 아무 문제없이 구현할 수있다. 뒤집 혔을 사본 나선 오버레이하여 알 수있는 바와 같이

Red Spiral

+0

속성 1, 2 대수 나선형으로 해결책을 가지고,하지만 서로 다른 모양 당신의 이미지 - 누락 된 속성이 또 하나 있어야합니다. 대수 나선형은 "직선"팔 (등고선으로 생각)을 가지고 있지만, 당신의 곡선이 더 커 보이기 때문에 누락 된 속성은 곡률에 관한 것입니까? – Claude

답변

1

내 나선형 화상, 재산 1을 만족하지 않는다 (외측 가장자리의 각도 45deg보다 직경 방향에 더 수직 인,보다) 내주 평행 : I은 주석으로서

spiral not satisfying properties

, 대수 스파이럴 양쪽 특성을 만족시킬 수있다. 여기, Fragmentarium를 사용하여 GLSL에서 그것을 구현하는 코드입니다 :

#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