使用kivy移动多个3D对象的Python

使用kivy移动多个3D对象的Python,python,3d,kivy,Python,3d,Kivy,我有一个相当简单的目标,就是在3D空间中绘制几个球体,并根据一些函数调整它们的位置。我想用python和kivy来实现这一点,因为它使触摸屏界面变得超级简单,而且我发现了一个能够处理编程方面大部分繁重工作的方法 从main.py函数中的这段代码中,我想绘制n个球体,然后稍后更新它们的位置(这是在draw_elements(self)函数下完成的,LOP[]是类“点”的列表) 绘制点时,它们位于其指定的原点。 稍后,由于时钟调度器的作用,程序调用update_scene函数 def update

我有一个相当简单的目标,就是在3D空间中绘制几个球体,并根据一些函数调整它们的位置。我想用python和kivy来实现这一点,因为它使触摸屏界面变得超级简单,而且我发现了一个能够处理编程方面大部分繁重工作的方法

从main.py函数中的这段代码中,我想绘制n个球体,然后稍后更新它们的位置(这是在draw_elements(self)函数下完成的,LOP[]是类“点”的列表)

绘制点时,它们位于其指定的原点。 稍后,由于时钟调度器的作用,程序调用update_scene函数

 def update_scene(self, *largs):
    def randLoc(point):
        newLoc = (0.1*random.random(),0.1*random.random(),0.1*random.random())
        oldLoc = point.shape.scale.origin
        newLoc = ( newLoc[0]-0.05+oldLoc[0], newLoc[1]-0.05+oldLoc[1], newLoc[2]-0.05+oldLoc[2] )
        return newLoc
    def updateLocs(self):
        for i in range(len(self.LOP)):
            point = self.LOP[i]
            point.shape.scale.origin = randLoc(point)
    if not self.pause:
        updateLocs(self)

    pass
运行此更新函数时,仅上次绘制的球体移动,尽管它确实正确移动

如何移动之前绘制的其他球体

(我的源代码可以找到,尽管它实际上只是在第一个存储库的基础上构建的)

 def update_scene(self, *largs):
    def randLoc(point):
        newLoc = (0.1*random.random(),0.1*random.random(),0.1*random.random())
        oldLoc = point.shape.scale.origin
        newLoc = ( newLoc[0]-0.05+oldLoc[0], newLoc[1]-0.05+oldLoc[1], newLoc[2]-0.05+oldLoc[2] )
        return newLoc
    def updateLocs(self):
        for i in range(len(self.LOP)):
            point = self.LOP[i]
            point.shape.scale.origin = randLoc(point)
    if not self.pause:
        updateLocs(self)

    pass