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