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()

2 本の対角線は、まったく同じ整数座標を使用しているにもかかわらず、同じようには描かれていません。左上から右下はエイリアスで描画され、もう一方はエイリアスされていません。それらを一貫させるにはどうすればよいですか?

ここに画像の説明を入力

私は Windows バージョンの kivy でテストしていて、他のプラットフォームではまだ試していません。

4

2 に答える 2

1

width=1.0 の Line 命令は GL_LINE を使用し、グラフィック カードの機能とマルチサンプリングの数に応じてエイリアシングが行われます。ATI と NVIDIA のカードでは異なる結果が得られました。

幅 != 1.0 (幅 = 0.75 としましょう) を使用すると、三角形のメッシュが作成されます。そして、結果はより一貫しているようです。試してみませんか?

于 2013-01-09T15:25:56.170 に答える
1

x/y 座標に 0.5 または 0.375 を追加します。

于 2013-01-09T14:30:14.340 に答える