小编Dan*_*iel的帖子

Kivy 和 Python 之间旋转图像的行为

当使用 Kivy 语言旋转和移动图像时,我无法理解 Kivy 在幕后所做的事情。

下面的代码应该在屏幕上以 45 度角绘制两个图像,然后每单击一次鼠标,就会进一步旋转它,然后将其移动到屏幕的右侧。

第一个图像是使用 Kivy 语言中定义的旋转绘制的,第二个图像是我尝试仅用 python 重做它的地方(以更好地理解 Kivy 实际在做什么),但我失败了,因为 Python 版本首先不当我增加 x 时,将图像向右移动,但看起来该图像的整个坐标系已旋转,因为它在屏幕上以 45 度角移动,其次,当我单击时,它不会旋转该图像。

我缺少什么,以及在 Python 中(不使用 Kivy 语言)需要做什么才能获得与第一个图像所使用的相同的行为?

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.image import Image
from kivy.graphics import Rotate
from kivy.uix.widget import Widget
from kivy.properties import NumericProperty
from kivy.graphics.context_instructions import PopMatrix, PushMatrix


Builder.load_string('''
<TestKV>:
    canvas.before:
        PushMatrix
        Rotate:
            angle: self.angle
            axis: (0, 0, 1)
            origin: self.center
    canvas.after:
        PopMatrix
''')

class TestKV(Image):
    angle = NumericProperty(0)

    def __init__(self, x, **kwargs): …
Run Code Online (Sandbox Code Playgroud)

python kivy

5
推荐指数
1
解决办法
1935
查看次数

标签 统计

kivy ×1

python ×1