2011-01-06 14 views
2

klingt wie sehr einfache Frage, aber sehr oft bin ich davon verwirrt. Bitte fang an, wo ich falsch liege.Breite des Rechtecks ​​

links = 0
rechts = 10
width = rechts - links = 10 (von Android verwendet)

Wenn wir nun dieses Rechteck auf dem Bildschirm zeichnen, geht es von dem 0. Pixel bis zum 10. Pixel, die bedeutet, dass es insgesamt 11 Pixel besetzt, so ist es Breite 11.

rechts sollte links + Breite - 1 => Breite = rechts - links + 1 so wenn links = 0, rechts = 9 und wir sind glücklich .
Versuchen Sie, ein Rechteck mit links = rechts und beide sollten 0. Ich habe vergessen, aber irgendwann zurück während der Verwendung von QT, hatte ich ein Problem wegen dieser gefunden. es gab Breite als 0 für 1x1 Rechteck zurück.

Ich denke, für Frameworks nach früheren Ansatz, wird angenommen, dass links enthalten ist und rechts in allen Zeichenfunktionen ausgeschlossen ist, so dass nur Pixel = Breite betroffen sind?

+0

Sie haben dies mit "Programmiersprachen" verschlagwortet Ich nehme an, dass das Android-bezogen ist? –

+0

nein. nur eine allgemeine Frage über die Breite des Rechtecks ​​in Zeichenfunktionen, die von verschiedenen Frameworks zur Verfügung gestellt werden. Android & QT sind nur zum Beispiel. –

Antwort

2

Beim Zeichnen von Linien in einem Raster, wie z. B. einem Pixelbildschirm, lautet die allgemeine Konvention ganzzahlige Koordinaten liegen auf Pixelzentren, nicht Ecken.

Werfen Sie einen Blick auf Bresenham's line algorithm.

Verwandte Themen