Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#12

AW: Koordinatensystem und Rects

  Alt 13. Mai 2014, 12:02
Auch verstehe ich nicht ganz, warum ein definiertes Rect.Create(Point(1,1),5,5) nachher in Rect.Right = 6 enthält.
Im Moment bezeichnet Rect.Right nicht das letzte Pixel eines Rects sondern das rechts daneben.
Wenn man von 1 an 5 Pixel zählt liegt das letzte aber bei 5. Von 1 bis 5 sind also 5 Pixel belegt, die Breite ist 5 und das letzte (rechte) Pixel liegt bei 5 (nicht bei 6).

Irgendwie finde ich das unlogisch.
Es hört sich unlogisch an, liegt aber daran, dass Punkte keine Flächen sind und eine Fläche keine Punkte
(Tolle Erklärung ... ok, ich versuche es mal besser)

Diese Fläche wird beschrieben durch die Punkte (nicht mit Pixeln verwechseln) [P(0,0),P(2,2)] => Die Fläche fängt bei P(0,0) and und hört bei P(2,2) auf.
Code:
  0   1   2
0 +---+---+
  | * | * |
1 +---+---+
  | * | * |
2 +---+---+
Ein Pixel ist hingegen eben auch eine Fläche und wenn man einen Pixel zeichnet, dann muss man die Zeichenfläche etwas anders organisiert betrachten (da sich ja auch der Kontext/die Betrachtungsweise geändert hat)
Code:
    0   1
  +---+---+
0 | * |   |
  +---+---+
1 |   |   |
  +---+---+
Ein Pixel Px(0,0) ist gleichzusetzen mit einer Fläche [P(0,0),P(1,1)] (eine Fläche mit der Höhe 1 und Breite 1)

Diese Unterschiede werden aber sprachlich nicht korrekt hervorgehoben.
Delphi-Quellcode:
type
  TRect = record
    function Contains(const Pt: TPoint): Boolean;
  end;
bezieht sich nicht auf die Punkte, sondern auf die Pixel!
Zitat:
Ein Punkt, der sich auf der oberen (Top) oder linken (Left) Seite des Rechtecks befindet, wird als im Rechteck befindender Punkt betrachtet, während ein Punkt, der sich auf der rechten (Right) oder unteren (Bottom) Seite befindet, als außerhalb des Rechtecks befindender Punkt betrachtet wird.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (13. Mai 2014 um 12:07 Uhr)
  Mit Zitat antworten Zitat