Point vs. PointF

09/11/2007 - 10:59 von Hans-Rüdiger Hanke | Report spam
Hallo NG,

warum gibt es (nicht nur bei Point) 2 Varianten und wann sollte man welche
Variante anwenden?
Warum sind bei PointF die Koordinaten vom Typ Single und nicht Double?
Wenn schon Gleitkomma, dann bietet Double nicht nur eine höhere Genauigkeit,
sondern auch eine höhere Verarbeitungsgeschwindigkeit (der höhere
Speicherplatzverbrauch kann verschmerzt werden)?

Viele Grüße,
Hans-Rüdiger
 

Lesen sie die antworten

#1 Karsten Sosna
09/11/2007 - 13:44 | Warnen spam
warum gibt es (nicht nur bei Point) 2 Varianten und wann sollte man welche
Variante anwenden?


Hallo Hans-Rüdiger
wenn, Du eine Variante bevorzugen willst, nimm die "XY-Variante". Denn bspw.

DrawLine(pen As Pen, PT1 As Point, PT2 As Point)
ruft
DrawLine(pen As Pen, X1 As Int32, Y1 As Int32, X2 As Int32, Y2 As Int32)
auf und diese wiederum
Gdip.GdipDrawLineI(pen As Pen, X1 As Int32, Y1 As Int32, X2 As Int32, Y2 As
Int32)


Ähnliches gilt für die Float-Variant

DrawLine(pen As Pen, PT1 As PointF, PT2 As PointF)
ruft
DrawLine(pen As Pen, X1 As Single, Y1 As Single, X2 As Single, Y2 As Single)
auf und diese wiederum
Gdip.GdipDrawLine(pen As Pen, X1 As Single, Y1 As Single, X2 As Single, Y2
As Single)

Und ich gehe mal davon aus, das Gdip.GdipDrawLineI wiederum
Gdip.GdipDrawLine aufruft. Sicher kann ich es Dir aber nicht sagen.

Warum sind bei PointF die Koordinaten vom Typ Single und nicht Double?
Wenn schon Gleitkomma, dann bietet Double nicht nur eine höhere
Genauigkeit,
sondern auch eine höhere Verarbeitungsgeschwindigkeit (der höhere
Speicherplatzverbrauch kann verschmerzt werden)?


Warum Single und nicht Double benutzt wird, weiß ich nicht und stört mich
eigentlich auch, da alle mathematischen Funktionen Double zurück liefern.
Ein Casten bleibt also nicht aus auch wenn man die Floatvariante benutzt
wird.
Für rein mathematische Anwendung habe ich mir meine eigene "PointD-Struktur"
erstellt, damit spare ich mir zumindest das Casten. Sollte ich dann eine
graphische Ausgabe machen wollen caste ich auf Int32, da ich so die Werte
auch bei Ausgaben mit GDI32 benutzen kann.
Gruß Scotty

Ähnliche fragen