AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Koordinatensystem und Rects

Ein Thema von stahli · begonnen am 12. Mai 2014 · letzter Beitrag vom 13. Mai 2014
Antwort Antwort
Seite 2 von 2     12   
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#11

AW: Koordinatensystem und Rects

  Alt 13. Mai 2014, 01:35
Ich denke, die entscheidenden Fragen sind eher:
  • Liegen die ganzzahligen Koordinaten auf den Pixeln oder gerade dazwischen?
  • Liegt die „Umrandung“ des Rechtecks (a) innerhalb oder (b) außerhalb, oder liegt sie (c) genau auf der Grenze? Und worauf beziehen sich jeweils die Koordinaten und die Breite und Höhe?
  Mit Zitat antworten Zitat
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
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz