5

我试图在按钮中间画一个简单的“X”。我已经输入了以下绘图代码:

    width, height = self.size
    x, y = self.pos
    x1, x2 = x + int(width*0.3), x + int(width*0.7)
    y1, y2 = y + int(height*0.3), y + int(height*0.7)
    with self.canvas:
        Line(points=[x1, y1, x2, y2], width=1, cap='none')
        Line(points=[x2, y1, x1, y2], width=1, cap='none')
    self.canvas.ask_update()

两条对角线,即使它们使用完全相同的整数坐标,绘制的也不相同。左上角到右下角是别名绘制的,而另一个则不是。我怎样才能使它们保持一致?

在此处输入图像描述

我应该提到我正在使用 Windows 版本的 kivy 进行测试,但我还没有在任何其他平台上尝试过。

4

2 回答 2

1

Add 0.5 or 0.375 to your x/y coordinates.

于 2013-01-09T14:30:14.340 回答
1

宽度为 1.0 的 Line 指令使用 GL_LINE,然后根据显卡能力和多重采样数进行混叠。我用 ATI 和 NVIDIA 卡得到了不同的结果。

如果您使用宽度!= 1.0(假设宽度 = 0.75),我们将使用三角形构建网格。结果似乎更加一致。你能试试吗?

于 2013-01-09T15:25:56.170 回答