Kivy坐标系

时间:2015-04-06 10:20:00

标签: python kivy

我无法理解Kivy坐标系。 目前,我在Scatter窗口小部件中有一个可以缩放和翻译的图像。

根据我的理解(如果我错了请纠正我)当我们翻译Scatter时,只有Scatter的位置发生变化,图像的位置相对于Scatter,所以看起来图像位置会变化为好吧,但它的相对位置将保持不变。当我们扩展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 = (0,200)。也许touch.pos参考帧原点不是图像而是其父图像。所以我打印了self.to_local(*touch.pos),结果相同。如果我打印而不是self.touch.pos-self.pos它就可以了!但是现在我不理解坐标系统,因为我认为本地参考帧原点是self.pos所以self.to_local(*touch.pos)应该等于touch.pos-self.pos

0 个答案:

没有答案