AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia FMX vs. VCL canvas.DrawPolygon

FMX vs. VCL canvas.DrawPolygon

Ein Thema von bernhard_LA · begonnen am 16. Aug 2020 · letzter Beitrag vom 16. Aug 2020
Antwort Antwort
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
937 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

FMX vs. VCL canvas.DrawPolygon

  Alt 16. Aug 2020, 09:38
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?
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
1.074 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: FMX vs. VCL canvas.DrawPolygon

  Alt 16. Aug 2020, 09:57
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
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
2.867 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: FMX vs. VCL canvas.DrawPolygon

  Alt 16. Aug 2020, 11:11
Auch weil FMX beliebig skaliert und rotiert werden kann.
Dafür gibt es sogar direkte Properties in jeder komponente .
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
37.044 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: FMX vs. VCL canvas.DrawPolygon

  Alt 16. Aug 2020, 12:29
Auch weil FMX beliebig skaliert und rotiert werden kann.
Dafür gibt es sogar direkte Properties in jeder komponente .
Jo, an JEDER.

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.
Das Blöde ist dann nur, dass man es nur bei sich "scharf" bekommt, aber es bei allen Anderen bestimmt wieder Scheiße aussieht.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
8.002 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: FMX vs. VCL canvas.DrawPolygon

  Alt 16. Aug 2020, 12:33
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}
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
937 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: FMX vs. VCL canvas.DrawPolygon

  Alt 16. Aug 2020, 15:08
in der unit System.Math.Vectors wird der type Tpolygon ja neu / re- definiert
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?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
37.044 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: FMX vs. VCL canvas.DrawPolygon

  Alt 16. Aug 2020, 15:35
Mit Namespace?
System.Math.Vectors.TPolygon statt TPolygon

oder über Aliases.
type TFmxPolygon = System.Math.Vectors.TPolygon;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 21:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf