【问题标题】:How to get kivy lines to be drawn consistently如何获得一致地绘制kivy线
【发布时间】:2013-01-09 04:36:29
【问题描述】:

我试图在按钮中间画一个简单的“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 进行测试,但我还没有在任何其他平台上尝试过。

【问题讨论】:

    标签: python opengl kivy


    【解决方案1】:

    将 0.5 或 0.375 添加到您的 x/y 坐标。

    【讨论】:

    • 我试过 0.5,没有帮助。虽然我可以尝试其他一些组合。
    【解决方案2】:

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

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

    【讨论】:

    • 我首先注意到宽度为 2 的问题,我将其更改为 1 以尝试简化。我没有尝试任何小于 1 的东西。直到今晚晚些时候我才有机会测试它。
    • 抱歉,我才意识到已经过去一年多了,我还没有回复你。将宽度更改为 0.75 根本没有改变模糊线,但它使另一条线粗了一倍,并且仍然是完整的强度。
    猜你喜欢
    • 2017-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多