2013-02-17 4 views
3

이제 파이썬 창에서 (x, y) 중심에 있고 길이가 n 인 육각형을 그리는 Hexagon (x, y, n)이라는 함수가 있습니다.파이썬에서 육각형 테셀레이션 애니메이션 그리기

내 목표는 화면 중앙에서 다른 후 육각 하나를 그리고 하나 하나를 확산하는 테셀레이션 애니메이션을 그릴 수있다 (그림으로 여기 http://s7.postimage.org/lu6qqq2a3/Tes.jpg 첨부).

이 문제를 해결하는 알고리즘을 찾고 있습니다. 프로그래밍에 익숙하지 않고 그렇게하기가 어려웠습니다.

감사합니다.

육각형의 고리를 들어

답변

2

하나는 다음과 같이 함수를 정의 할 수 있습니다 :

def HexagonRing(x,y,n,r): 
    dc = n*math.sqrt(3) # distance between to neighbouring hexagon centers 
    xc,yc = x,y-r*dC# hexagon center of one before first hexagon (=last hexagon) 
    dx,dy = -dc*math.sqrt(3)/2,dc/2 # direction vector to next hexagon center 
    for i in range(0,6): 
     # draw r hexagons in line 
     for j in range(0,r): 
      xc,yc = xc+dx,yc+dy 
      Hexagon(xc,yc,n) 
     # rotate direction vector by 60° 
     dx,dy = (math.cos(math.pi/3)*dx+math.sin(math.pi/3)*dy, 
       -math.sin(math.pi/3)*dx+math.cos(math.pi/3)*dy) 

그런 다음 하나가 다른 후 하나 개의 고리를 그릴 수 있습니다 :

Hexagon(0,0,10) 
HexagonRing(0,0,10,1) 
HexagonRing(0,0,10,2) 
HexagonRing(0,0,10,3) 
+0

감사합니다 많이! 그것은 매우 도움이됩니다. – user2063057