위키 피 디아 페이지에서 이것을보고 있었고 누구나이 작업을 구현하고 있는지 궁금해하고있었습니다.Koch Snowflake Implementation in Haskell
나는 하스켈을 배우려고 노력 중이며 약간 어려워서 코흐 눈송이와 시어 핀 스키 삼각 지대에서 일하고있다.
모든 코드 또는 제안을 환영합니다.
감사
위키 피 디아 페이지에서 이것을보고 있었고 누구나이 작업을 구현하고 있는지 궁금해하고있었습니다.Koch Snowflake Implementation in Haskell
나는 하스켈을 배우려고 노력 중이며 약간 어려워서 코흐 눈송이와 시어 핀 스키 삼각 지대에서 일하고있다.
모든 코드 또는 제안을 환영합니다.
감사
삼각형 목록을 제공해야합니다. 지금이 삼각형을 당신이 생각하는 깊이로 화면에 그리십시오.
구조가 많고 규모에 영향을받지 않는 이런 종류의 그림의 경우 다이어그램 패키지 (http://projects.haskell.org/diagrams/)를 사용하는 것이 좋습니다. 정말 환상적인 코드입니다. 다음 코드를 참조하여 작성한 Koch 눈송이를 작성하십시오. 진정 분 만에 :
snowflake :: Int -> Trail R2
snowflake n = k <> k # rotateBy (-1/3) <> k # rotateBy (1/3)
where k = koch n
koch :: Int -> Trail R2
koch 0 = P (-1,0) ~~ P (1,0)
koch n = k <> k # rotateBy (1/6) <> k # rotateBy (-1/6) <> k
where k = koch (n-1) # scale (1/3)
거의 자기 설명이다, 마법의 대부분은 산책로가 종료 종료 "연결할"합니다 트레일의 모노 이드 인스턴스입니다.
주 : (<>)은 mappend에 대한 연산자이며 과거에 정의한 다이어그램이지만 GHC 7.4의 기본 부분이며 아마도 Haskell 보고서의 차후 버전에 포함될 것입니다 (#) 다이어그램 작성자가 다이어그램을 정의한 다음 다른 방향으로 쓰기보다는 속성을 적용하는 것이 더 즐거워서 (k # rotateBy (1/6)은 단지 rotateBy (1/6) k)이기 때문에 응용 프로그램이 반전되었습니다.
sierpinski의 삼각형에 대해서는 여기를 참조하십시오. [http://stackoverflow.com/questions/1726698/code-golf-sierpinskis-triangle](http://stackoverflow.com/questions/1726698/code-golf- sierpinskis-triangle) 도움이되는 정보 : [http://www.hardforum.com/showthread.php?p=1034927217] (http://www.hardforum.com/showthread.php?p=1034927217) 다음은 도움이 될 수있는 제안입니다. [http://www.rhinocerus.net/forum/lang-functional/96046-haskell-fractals-specifically-snowflakes.html](http://www.rhinocerus.net /forum/lang-functional/96046-haskell-fractals-specifically-snowflakes.html) –