Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   GLScene GLLines Color (https://www.delphipraxis.net/170505-glscene-gllines-color.html)

Maiky 20. Sep 2012 14:28

GLScene GLLines Color
 
Hi.

Ich habe da ein paar Fragen und würde mich freuen wenn mir da jemand weiterhelfen kann. ;)

1. Ich füge mehrere Lines ein und möchte jeder Line eine andere Farbe geben. Wie kann man dies machen? GLLines.LineColor färbt alle Linien, ich möchte aber einzelne andersfarbig haben und ich habe hier auch gesehen das man Farbübergänge wohl irgendwie definieren kann: http://glscene.pbworks.com/w/page/6437668/TGLLines
Weiß jemand dazu was?

Code:
    GLLines := TGLLines(GLDummyCube1.AddNewChild(TGLLines));
    GLLines.NodesAspect := lnaInvisible;
    GLLines.LineWidth := 2;
    GLLines.LineColor.AsWinColor := clBlack;
    GLLines.AddNode(0,0,0);
    GLLines.AddNode(1,0,0);
    GLLines.AddNode(1,1,0);
    GLLines.AddNode(-1,2,0);

2. Wieso geht die erste Zeile nicht aber die darunter? Im Objectinspector steht es doch ebenfalls so drin.
Code:
GLLines.LineColor := clrBlack;
GLLines.LineColor.AsWinColor := clBlack;
EDIT: Dieser Punkt hat sich wohl erledigt. Man muss die UNIT "GLColor" einbinden, dann geht es mit:
Code:
GLLines.LineColor.Color := clrBlack;

3. Wie kann ich die Farbe(+Alpha) einer beliegen Linie im Nachhinein ändern? Die Position kann ich so ändern: GLLines.Nodes[1].X := 3;
Aber Color kennt er nicht, obwohl es auch hier im Objectinspector drin steht.

Danke.

Uwe Raabe 20. Sep 2012 15:37

AW: GLScene GLLines Color
 
Du musst die Nodes casten. Da
Delphi-Quellcode:
TGLLine.Nodes
vom Typ
Delphi-Quellcode:
TGLLinesNodes
ist, sollte das problemlos gehen:

Delphi-Quellcode:
(GLLines.Nodes[I] as TGLLineNode).Color := ...


oder

Delphi-Quellcode:
TGLLineNode(GLLines.Nodes[I]).Color := ...

Maiky 20. Sep 2012 15:47

AW: GLScene GLLines Color
 
Danke, aber so wirklich zum laufen bekomme ich das nicht. Ich erhalte zwar keinen Fehler, aber auch keine Farbänderung. Folgendes habe ich probiert:
Code:
TGLLinesNode(GLLines.Nodes[1]).Color.Color := clrRed;
(GLLines.Nodes[1] as TGLLinesNode).Color.Color := clrRed;
(GLLines.Nodes[1] as TGLLinesNode).Color.AsWinColor := clRed;
Wenn ich das zweite ".Color" weglassen würde, erhalte ich eine Fehlermeldung:

[DCC Fehler] Unit1.pas(90): E2010 Inkompatible Typen: 'TGLColor' und 'TVector4f'

Auch bewirkt so Alpha keine Änderung:
Code:
TGLLinesNode(GLLines.Nodes[1]).Color.Alpha := 0.1;
Eine Zeile darüber habe ich dies stehen und das ist sofort sichtbar:
Code:
GLLines.Nodes[1].X := 3;
Fehlt hier noch irgendwas? Wie setzt man eigentlich diesen Farbverlauf, den man im obigen Link sieht?

Uwe Raabe 20. Sep 2012 16:26

AW: GLScene GLLines Color
 
Hast du denn auch
Delphi-Quellcode:
loUseNodeColorForLines
in
Delphi-Quellcode:
GLLine.Options
eingeschaltet?

Maiky 21. Sep 2012 14:07

AW: GLScene GLLines Color
 
Ah, super. Ja so geht das nun. ;)

Jetzt habe ich auch den Farbverlauf. Gibt es auch die Möglichkeit einzelne Linien mit einer fixen Farbe zu färben, ohne einen Farbverlauf?

Uwe Raabe 22. Sep 2012 17:44

AW: GLScene GLLines Color
 
Zitat:

Zitat von Maiky (Beitrag 1183889)
Ah, super. Ja so geht das nun. ;)

Jetzt habe ich auch den Farbverlauf. Gibt es auch die Möglichkeit einzelne Linien mit einer fixen Farbe zu färben, ohne einen Farbverlauf?

Ohne das ich das jetzt ausprobieren kann: Da die Farben nun ja den einzelnen Nodes und nicht den Linien zugeordnet werden, könnte das gehen, wenn du bei einem Farbwechsel einfach zwei Nodes auf die gleiche Position setzt.

Maiky 30. Sep 2012 14:56

AW: GLScene GLLines Color
 
Danke für die Hilfe ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:24 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