我们获得了一项作业,该作业需要我们模拟经典的鼠标追踪问题https://en.wikipedia.org/wiki/Mice_problem。我已经编写了代码来模拟3边角(即三角形)中的鼠标。我还可以轻松地手动添加另一只鼠标来模拟正方形顶点上的鼠标。这足以完成家庭作业,但是我要对此程序执行的操作是,我想创建一个n小鼠的模拟,其中用户可以自由选择任意n。
我的代码(在VPython中):
#instantiating objects
s1 = sphere(pos=vector(0,0,0), radius=0, make_trail='True', trail_color=color.red)
s2 = sphere(pos=vector(2,0,0), radius=0, make_trail='True', trail_color=color.blue)
s3 = sphere(pos=vector(1,sqrt(3),0), radius=0, make_trail='True', trail_color=color.green)
#defining constants
speed = 5
dt = 0.01
#defining driving function
def move_snail(s, dir):
return s.pos += speed * dt * dir
#setting up animating loop
while True:
rate(10)
p1 = s1.pos
p2 = s2.pos
p3 = s3.pos
#defining directions
dir_1 = hat(p2-p1)
dir_2 = hat(p3-p2)
dir_3 = hat(p1-p3)
#calling function and updating position
move_snail(s1, dir_1)
move_snail(s2, dir_2)
move_snail(s3, dir_3)
答案 0 :(得分:0)
另一个评论是,您可以要求用户输入“ n”,然后使用循环将n个球体对象添加到列表中。然后,在动画循环中,您将遍历该列表,更新n个球体对象的pos属性。