Python 如何在Kivy中绘制具有圆角的四边形?

Python 如何在Kivy中绘制具有圆角的四边形?,python,kivy,kivy-language,kivymd,Python,Kivy,Kivy Language,Kivymd,我尝试使用Kivy的画布说明创建以下形状: 我成功地创建了一个具有直角的梯形(代码如下) 但是我想知道圆角是否也可以这样 我可以想出一个解决办法,那就是保存一个圆形梯形的白色图像,然后用这个图像对一个矩形进行纹理处理。类似于 canvas.before: Color: rgba: self.background_color Rectangle: size: self.size pos: self.pos sourc

我尝试使用Kivy的画布说明创建以下形状:

我成功地创建了一个具有直角的梯形(代码如下)

但是我想知道圆角是否也可以这样

我可以想出一个解决办法,那就是保存一个圆形梯形的白色图像,然后用这个图像对一个矩形进行纹理处理。类似于

canvas.before:
    Color:
        rgba: self.background_color
    Rectangle:
        size: self.size
        pos: self.pos
        source: 'rounded_trapezium.png'
现在,
background\u color
将白色梯形“着色”为我想要的任何颜色,这意味着我可以多次添加和重新绘制相同的形状,而无需保存和加载大量图像。但我很好奇,仅仅使用Kivy的画布是否也能达到同样的效果


提前感谢。

我可以提供这样一个示例,要获得所需的四边形,您需要编辑
半径
参数

从kivy.app导入应用
从kivy.lang导入生成器
KV=(“”“
盒子布局:
填充:50
浮动布局:
在以下情况之前:
颜色:
rgba:0.43,0.85,0.56,1
圆反射角:
pos:self.pos
大小:self.size
半径:[(200100),(20040),(自身大小[0],自身大小[0]),(20,20)]
""")
类主应用程序(应用程序):
def生成(自):
返回生成器。加载字符串(KV)
如果名称=“\uuuuu main\uuuuuuuu”:
MainApp().run()

使用网格指令,您可以创建任何喜欢的形状,但需要编写代码来生成其顶点。您可能会发现查看RoundedRectangle canvas指令的代码很有用,因为您想要的是相同的,但带有边界矩形偏移的一个角。感谢@Increment,我将查看网格指令。我在查找Cavas/图形指令源代码时遇到一些问题。你能给我发个链接吗?
canvas.before:
    Color:
        rgba: self.background_color
    Rectangle:
        size: self.size
        pos: self.pos
        source: 'rounded_trapezium.png'