Python 基维坐标系

Python 基维坐标系,python,kivy,Python,Kivy,我很难理解Kivy坐标系。 目前,我在一个Scatter小部件中有一个可以缩放和转换的图像 根据我的理解(如果我错了,请纠正我),当我们平移散射时,只有散射的位置发生变化,图像的位置相对于散射,因此图像位置也会发生变化,但其相对位置将保持不变。当我们缩放散射时,我不太确定会发生什么,我猜它只是改变了它呈现其子对象的方式 现在,我试图确定在单击图像时单击的是哪个像素。为此,我做了: class ClickableImage(Image): def on_touch_down(self,to

我很难理解
Kivy
坐标系。 目前,我在一个
Scatter
小部件中有一个可以缩放和转换的图像

根据我的理解(如果我错了,请纠正我),当我们平移散射时,只有散射的位置发生变化,图像的位置相对于散射,因此图像位置也会发生变化,但其相对位置将保持不变。当我们缩放散射时,我不太确定会发生什么,我猜它只是改变了它呈现其子对象的方式

现在,我试图确定在单击图像时单击的是哪个像素。为此,我做了:

class ClickableImage(Image):
    def on_touch_down(self,touch):
        if self.collide_point(*touch.pos):
                print touch.pos
                return True
        else:
            return super(ClickableImage,self).on_touch_down(touch)
似乎
touch.pos
始终是一个偏移量,当我单击图像的左下角时,我得到了
touch.pos=(0200)
。可能
touch.pos
参考帧的原点不是图像,而是其父对象。所以我改为将self.to_local(*touch.pos)打印出来,结果相同。如果我改为打印
self.touch.pos-self.pos
,它会工作!但现在我不理解坐标系,因为我认为本地参考坐标系原点应该是
self.pos
,所以
self.to_local(*touch.pos)
应该等于
touch.pos self.pos