Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Andorra 2D - Objekt zeichnen (https://www.delphipraxis.net/156354-andorra-2d-objekt-zeichnen.html)

Gruber_Hans_12345 29. Nov 2010 13:03

Andorra 2D - Objekt zeichnen
 
Also verusche mich gerade mit Andorra2D

Was ich mich frage, ich möchte gernen einen Beriech zwichnen mit dem Canvas Objekt.
Dieser Bereich soll sagen wir mal vereinfacht ein Rechteck sein, wo eine Ecke abgerundet ist, und dieses Objekt sollte mit einem Gradient gefüllt sein.

Das erste problem ist, das ich mit dem Canvas gar keinen Halbkreise oder in meinem Fall viertel Kreise zeichnen kann.

Und wenn ich es mit nem gradient füllen will, dann mß ich es ja in eine Polygon oder so schaffen, damit ich es dann zeichnen kann -> aber dort habe ich ja pro punkt auch nur x und y ?!?!?

Wie gehe ich da nun vor?

igel457 29. Nov 2010 16:00

AW: Andorra 2D - Objekt zeichnen
 
Hallo,

das mit dem Polygon sollte klappen, der Gradient sollte (so weit ich das in Erinnerung habe) automatisch über das gesammte Polygon verteilt werden.

Gruber_Hans_12345 29. Nov 2010 16:12

AW: Andorra 2D - Objekt zeichnen
 
Also ich verwende im moment :

Delphi-Quellcode:
        Canvas.Brush.Color             := Color;
        Canvas.Brush.GradientColor     := AdCol32_White;
        Canvas.Brush.Style             := abGradient;
        Canvas.Brush.GradientDirecton  := gdHorizontal;

Canvas.Polygon(tempPt);
Es wird das Polygon genau so gezeichnet wie es soll, aber eben nur in der Farbe die ich im Canvas.Brush.Color angegeben habe ....

igel457 29. Nov 2010 16:20

AW: Andorra 2D - Objekt zeichnen
 
Hm, du hast recht. Ich berechne zwar schon die Interpolationsfaktoren in TAdCanvasPolygonObject.GenerateTextureCoords, jedoch erzeuge ich nicht den Gradient (was ansich aber auch relativ einfach geht). Man sollte das recht einfach patchen können, in dem man eine zweite Funktion analog GenerateTextureCords schreibt, die einfach die Farbe jedes Vertices entsprechend linear interpoliert setzt.

Wo ich mir das so anschaue könnte man das GenerateTextureCords und die zu schreibende GenerateGradient Funktion auch in eine gemeinsame Mutterklasse vieler Canvas-Objekte verschieben, was etwas Redundanz einspart, und von GenerateTextureCords könnte noch eine Funktion "GetBoundsRect" abspalten...

Was würde man heute nicht alles anders machen...

Für Patches bin ich jeder Zeit offen!

Gruber_Hans_12345 29. Nov 2010 16:55

AW: Andorra 2D - Objekt zeichnen
 
Kannst es mir noch etwas genauer sagen, was man da machen sollte/muß?

Bin noch nicht ganz so vertraut mit der Andorra Sache ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz