我想将转换矩阵应用于小部件。在本例中,我预计它向右移动 100。然而它却一动不动,而是Transformation:
x: 100效果很好。我已经简化了问题,我实际上想从这里应用一些矩阵。此外,我从那里测试了一些矩阵,它的工作方式不同或者只是没有显示任何内容。from kivy.graphics.transformation import Matrixfrom kivy.lang import Builderfrom kivy.uix.anchorlayout import AnchorLayoutfrom kivy.app import AppBuilder.load_string("""<MainScreen>: anchor_x: "center" anchor_y: "center" canvas.before: Color: rgba: (0, 0, 0, 1) Rectangle: pos: self.pos size: self.size Button: id: widg size_hint: (0.3, 0.6) canvas.before: PushMatrix # Translate: # x: 100 MatrixInstruction: matrix: root.matrix canvas.after: PopMatrix text: "hello"""")class MainScreen(AnchorLayout): matrix = Matrix() matrix.set(array=[[1.0, 0.0, 0.0, 100.0], [0.0, 1.0, 0.0, 0.0], [0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 1.0]]) def __init__(self, **kwargs): super(MainScreen, self).__init__(**kwargs) print(self.ids.widg.canvas.before.children[1].matrix)class Application(App): def __init__(self, **kwargs): super(Application, self).__init__(**kwargs) def build(self): return MainScreen()if __name__ == "__main__": Application().run()
1 回答
汪汪一只猫
TA贡献1898条经验 获得超8个赞
你的矩阵不正确。尝试:
matrix.set(array=[[1.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0], [0.0, 0.0, 1.0, 0.0], [100.0, 0.0, 0.0, 1.0]])
添加回答
举报
0/150
提交
取消