을 Python에서 OpenGL을 사용하여 시뮬레이션하고 싶습니다. 나는 next_nodes
을 얻기위한 코드를 작성했다. 노드가 경계를 만족시키고 다음 노드가 재귀 적으로 그렇지 않으면 돌아올 때 인쇄한다.경로 찾기에서 무한 루프
그러나 코드에는 무한한 실행 문제가 있습니다. 누구든지이 문제를 해결할 수 있습니까? 아래의 관련 코드를 게시하십시오 (모든 OpenGL 호출이 제거됨).
def get_node(x,y,z,side):
return [x+side,y,z],[x,y+side,z],[x,y,z+side],[x-side,y,z],[x,y-side,z],[x,y,z-side]
def goto_next_nodes(x,y,z,cube_side,next_nodes,boundary_x,boundary_y,boundary_z):
for node in next_nodes:
if 0<=node[0]<=boundary_x and 0<=node[1]<=boundary_y and 0<=node[2]<=boundary_z:
print node
x,y,z=node[0],node[1],node[2]
next_nodes=get_node(x,y,z,cube_side)
goto_next_nodes(x,y,z,cube_side,next_nodes,boundary_x,boundary_y,boundary_z)
else:
return
def display_fcc(cube_side,boundary_x,boundary_y,boundary_z):
x=y=z=0
next_nodes=get_node(x,y,z,cube_side)
goto_next_nodes(x,y,z,cube_side,next_nodes,boundary_x,boundary_y,boundary_z)
display_fcc(5,10,10,10)
재귀 goto_next_node
는 재귀 함수이며, display_fcc
함수에서 시작한다.
코드를 정리하십시오. 문제와 무관 한 비트를 제거하십시오. – Deestan
'goto_next_nodes'의 의도는 무엇입니까? – Deestan
글쎄, 문제가 어디에 있는지 알 수 있습니다 ('goto_next_node'에서). 따라서 재귀를 일으킬 수있는 것이 있는지 여부에 관계없이이 함수를 살펴보십시오. 마찬가지로, 나는 똑같은 주장에 대해 다시 함수를 호출한다. 또는 노드 A로 판명 될 일부 노드 A의 다음 노드 B를 찾으려고합니까? 'print' 문을 사용하여'x','y,'z'를 설명 할 수 있습니다 ... –