AGB  ·  Datenschutz  ·  Impressum  







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

.net: versch. Points wofür?

Ein Thema von jfheins · begonnen am 19. Nov 2009 · letzter Beitrag vom 19. Nov 2009
Antwort Antwort
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#1

.net: versch. Points wofür?

  Alt 19. Nov 2009, 14:40
Hallo,
ich stolpere gerade über folgendes: Es gibt 3 verschiedene Point-Strukturen in 2 Namespaces.

Und zwar System.Drawing.Point, System.Drawing.PointF und System.Windows.Point.

Was ich bis jetzt an Unterschieden habe:
Grundtypen (int vs. float vs. double)
Die zugehörigen Typen aind auch anders. Windows.Point hat einen Windows.Vector und Drawing.Point hat Drawing.Size (bzw. SizeF)
Die Zeichen-Routinen brauchen die Drawing.Point(F) (logisch, ist ja auch der gleiche namespace)

Jetzt wüsste ich gerne warum man diese Funktionalität dupliziert hat und wann man welchen am besten verwendet.

Oder ist es am Ende ein "Oh das ist ja ein andere namespace, die könnten ihren Point ja ändern also machen wir unseren eiegenen Point"
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: .net: versch. Points wofür?

  Alt 19. Nov 2009, 15:30
Naja letztlich geht's schon um 2 recht unterschiedliche Dinge. Ein Mal die GDI+, und ein Mal WPF. Selbst wenn die Typen intern identisch wären, würde ein jeweils eigener wohl OOP-technisch sinnvoll (oder zumindest okay) sein, so es denn keinen weiteren gleichartigen Typen in den Namespaces gibt die beide gemeinsam referenzieren. So, oder in der Version die MS gewählt hat wäre eine Abhängigkeit zweier eher nebeneinander stehender Namespaces vermieden. Dadurch kannst du dann auch prinzipiell leicht ein System unterstützen, dass GDI+, aber keine WPF implementiert (gibt's glaub ich nicht, aber wäre ja möglich). Du könntest aber auch auf die Idee kommen statt WPF ein anderes Fenstersystem einzusetzen (GTK+ z.B.), willst aber auf die GDI+ nicht verzichten - ginge, ohne Teile der WPF zu brauchen. Joa, so die Ecke wäre jetzt mein Erklärungsansatz
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#3

Re: .net: versch. Points wofür?

  Alt 19. Nov 2009, 18:43
Medium hat's im Prinzip schon. Hier noch als Ergänzung zur Frage, wann man welches nimmt:

System.Windows und System.Drawing haben nichts miteinander zu tun und haben keinerlei Abhängigkeiten untereinander. Zumindest ist das der Plan. Wenn du also System.Drawing oder System.Windows.Forms benutzt, dann ist System.Drawing.Point dein Freund. Verwendest du hingegen WPF, ist es System.Windows.Point. Wenn du beides verwendest (ungewöhnlich, außer wenn du eine Anwendung teilweise portierst bzw. neue Funktionalität in WPF bereitstellst), musst du eben das verwenden, was gerade passt. Das coole ist, dass für eine reine WPF-Anwendung (zumindest theoretisch) die System.Drawing.dll nicht geladen werden muss.

WPF verwendet an solchen Stellen immer double, weil es auf dem Konzept von device independent pixels aufsetzt, also quasi virtuellen Pixeln. Da kann man schonmal krumme Werte bekommen, wenn man flüssig skalierbar sein will. SWF hingegen kennt eigentlich nur das Konzept von ganzen Pixeln und verwendet deshalb meistens ganzzahlige Werte, also ints. Für einige Berechnungen und Zeichnungen muss man hingegen auch mal halbe Pixel zeichnen können, also hat man sich damals für die float-Varianten entschieden. Das kommt gewöhnlich aber nur in System.Drawing und nicht in den Forms zum Einsatz, weil SWF wie gesagt auf ganzen Pixeln aufsetzt. Praktischerweise kann man aber PointF und Point ineinander konvertieren (ebenso wie RectangleF und Rectangle).
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:45 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