比例尺python绝望线

Scale python kivy line

我正在尝试使用 kivy 绘制各种线段。这条线看起来真的很小(在屏幕的一端),我想放大它。理想情况下,我想从屏幕中心指定坐标并指定宽度和高度,以便线段显示良好。这是我写的代码:

from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.widget import Widget
from kivy.lang import Builder
from kivy.graphics import Color, Ellipse, Line

class MyWidget(Widget):

    def __init__(self, **kwargs):
        super(MyWidget, self).__init__(**kwargs)
        with self.canvas:
            for obstacle in obstacles:
                print obstacle
                Line(points=[20, 5, 40, 5],width=1)
            pass
            # add your instruction for main canvas here

class MotionPlanningApp(App):
    def build(self):
        root = GridLayout(cols=1, padding=5, spacing=1)
        root.add_widget(MyWidget())
        return root

if __name__ == '__main__':
    MotionPlanningApp().run()

在 kivy 中有什么方法可以做到这一点吗?

您可以使用 Translate 指令移动直线(有效移动 canvas 的原点)和 Scale 指令拉伸它。

例如,您可以:

from kivy.core.window import Window
with self.canvas:
    self.translate = Translate(Window.width / 2, Window.height / 2.)

如果 window 大小发生变化,您还需要稍后通过绑定一个函数来修改翻译指令。

尽管如此,坐标以屏幕像素为单位,因此该线目前很小,只是因为您只将其设为 20 像素长。