代码拉取完成,页面将自动刷新
同步操作将从 朱洪君/monte-carlo-AGV 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
from change import switch_to_xy,switch_to_location,judge_xy,rotate,judge_rotate
from treenode import Node
import math
def add_node(treenode,location,*args):
if len(args)==0:
flag=0 #默认为0
else:
flag=args[0] #可能为0,可能为1,分别代表扩展所有和只扩展一步
type=judge_rotate(treenode,location)
if type==0: #停止
sub_node=Node()
sub_node.location=treenode.location
sub_node.rotation=treenode.rotation
treenode.add_child(sub_node)
elif type==1: #转向
[x,y]=switch_to_xy(treenode.location)
[x_flag,y_flag]=judge_xy(treenode.location,location)
sub_node = Node()
sub_node.location = treenode.location
sub_node.rotation = rotate(treenode.rotation, x_flag, y_flag)
treenode.add_child(sub_node)
if flag==0:
sub_sub_node = Node()
sub_sub_node.location = switch_to_location([x + x_flag, y + y_flag])
sub_sub_node.rotation = sub_node.rotation
sub_node.add_child(sub_sub_node)
return sub_sub_node
elif type==2: #前进
[x, y] = switch_to_xy(treenode.location)
[x_flag, y_flag] = judge_xy(treenode.location, location)
sub_node = Node()
sub_node.location = switch_to_location([x + x_flag, y + y_flag])
sub_node.rotation = treenode.rotation
treenode.add_child(sub_node)
else: #后退
[x, y] = switch_to_xy(treenode.location)
[x_flag, y_flag] = judge_xy(treenode.location, location)
epsilon=math.pow(10,-5)
# 做出后退决定后,需要同时扩展出三次,分别以sub_node、sub_sub_node、sub_sub_sub_node标识
sub_node = Node()
sub_node.location = treenode.location
sub_node.rotation=treenode.rotation+1/2*math.pi
if abs(sub_node.rotation-2*math.pi)<epsilon:
sub_node.rotation=0
treenode.add_child(sub_node)
if flag==0:
sub_sub_node = Node()
sub_sub_node.location = sub_node.location
sub_sub_node.rotation = sub_node.rotation+1/2*math.pi
if abs(sub_node.rotation-2*math.pi)<epsilon:
sub_node.rotation=0
sub_node.add_child(sub_sub_node)
sub_sub_sub_node = Node()
sub_sub_sub_node.location = switch_to_location([x + x_flag, y + y_flag])
sub_sub_sub_node.rotation = sub_sub_node.rotation
sub_sub_node.add_child(sub_sub_sub_node)
return sub_sub_sub_node
return sub_node
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。