【发布时间】:2021-10-17 20:48:18
【问题描述】:
我的期望:
半径为 100px 的圆将动画为半径 150px。解决方案可能很简单,但这个问题超出了我的知识范围......
小例子
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
from kivy.graphics import Line, Ellipse
from kivy.clock import Clock
from kivy.animation import Animation
class AnimationExample(BoxLayout):
def __init__(self, **kwargs):
super().__init__(**kwargs)
Clock.schedule_interval(self.animate, 2)
with self.canvas:
self.pulsating_line = Line(
circle=(self.center_x, self.center_y, 100),
width=2)
self.bind(size = self.update,
pos = self.update
)
def update(self, *args):
self.pulsating_line.circle = (self.center_x,
self.center_y,
100,
)
def animate(self, *args):
print('Animate')
circ = self.pulsating_line
circ.circle = (self.center_x,
self.center_y,
100,
)
circ.width = 2
# This works for animated "width"
Animation(width=8,
t='out_bounce',
d=1.1).start(circ)
# In my opinion is this analogical approach, but of course, it not works :/
# Animation(circle=(self.center_x,
# self.center_y,
# 150,
# ),
# t='out_bounce',
# d=0.8).start(circ)
class TutorialApp(App):
def build(self):
return AnimationExample()
TutorialApp().run()
【问题讨论】:
标签: python kivy kivy-language