FMX vs. VCL canvas.DrawPolygon
unter VCL haben wir mit dem code unten Polygone in Bitmaps gezeichnet
Delphi-Quellcode:
type TPolygon = array of TPoint;
var MyPolygon : TPolygon ; {$IFDEF Framework_VCL} bmp.Canvas.polygon(MyPolygon); {$ENDIF} {$IFDEF Framework_FMX} bmp.Canvas.Drawpolygon(MyPolygom,50); {$ENDIF} um unter FMX selbige Aufgabe zu erfüllen benötige ich nun aber einen Polygon mit TPointF werten ( TPolygon = array of TPointF; ). a) warum werden jetzt nicht mehr Integer Werte verwendet, die Pixel sind ja weiterhin integer ....; Gibt es jetzt dafür eine Funktion die Floating Point Werte auf die Pixel Werte meiner Bitmap zu skalieren ??? b) Was ist die schnelles Methode mein TPolygon (Integer) in die neue TPolygon Version zu konvertieren? |
AW: FMX vs. VCL canvas.DrawPolygon
Hallo,
in FMX sind alle Positionsangaben jetzt Single Werte. Ja, Pixel sind weiterhin ganz, aber wenn für berechnungen Single datentypen benutzt werden gibt's bei Transformationen (z. B. mit Sin/Cos) weniger (akkumulierte) Rundungsfehler! Grüße TurboMagic |
AW: FMX vs. VCL canvas.DrawPolygon
Auch weil FMX beliebig skaliert und rotiert werden kann.
Dafür gibt es sogar direkte Properties in jeder komponente . |
AW: FMX vs. VCL canvas.DrawPolygon
Zitat:
Die Form, paar Panels und dann darauf nochaml die Komponente selbst und jeder Unhabhängig, was sich dann akkumuliert. Und selbst wenn nirgendwo was gemacht wurde und eine Einheit auch ein Pixel ist, dann gibt es auch da schon massig Positionierungsfehler, dass man selbst nochmal bissl schieben muß. z.B. weil eine Linie nicht genau auf einem Pixel liegt und dann statt einem schwarzen pixelbreiten Strich zwei unterschiedlich Graue da sind oder das Selbe bei Kleiner und so hässlich unscharf aussehender Schrift. :wall: Das Blöde ist dann nur, dass man es nur bei sich "scharf" bekommt, aber es bei allen Anderen bestimmt wieder Scheiße aussieht. |
AW: FMX vs. VCL canvas.DrawPolygon
Und wie wär's damit?
Delphi-Quellcode:
{$IFDEF Framework_VCL}
type TPolygon = array of TPoint; {$ENDIF} var MyPolygon : TPolygon ; {$IFDEF Framework_VCL} bmp.Canvas.polygon(MyPolygon); {$ENDIF} {$IFDEF Framework_FMX} bmp.Canvas.Drawpolygon(MyPolygom,50); {$ENDIF} |
AW: FMX vs. VCL canvas.DrawPolygon
in der unit
Delphi-Quellcode:
wird der type Tpolygon ja neu / re- definiert
System.Math.Vectors
ich kann in unserer Anwendung den Type Namen TPolygon nicht neu definieren, weil zu oft verwendet + zum Zeichnen im VCL benötige wie sieht denn eine effektive Umsetzung von meinem TPolygon in das "andere" TPolygon aus ---- und nur lokal in einer Routine wird dann das andere TPolygon , bzw. beide verwendet? |
AW: FMX vs. VCL canvas.DrawPolygon
Mit Namespace?
Delphi-Quellcode:
statt
System.Math.Vectors.TPolygon
Delphi-Quellcode:
:stupid:
TPolygon
oder über Aliases.
Delphi-Quellcode:
type TFmxPolygon = System.Math.Vectors.TPolygon;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:51 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