![]() |
Farbdreieck mit Delphi6 Professional programmieren
Hallo,
ich soll für die Schule eine kleine Application schreiben, die aus einem Dreiecke besteht. In diesem Dreieck sollen alle Farben enthalten sein. Also ein farbdreieck. wie kann ich das machen??? es soll dazu OpenGL benutzt werden Mit freundlichen Grüßen Christian18 |
Re: Farbdreieck mit Delphi6 Professional programmieren
du gehst mit drei schlefien die Rgb durch und zeichnen - die formel kann ich dir jetzt nicht geben
aber RGB und nacher mit Canvas.Pixels[i,j] := RGB(e,f,g); edit: besser du suchst nach ![]() ![]() ![]() |
Re: Farbdreieck mit Delphi6 Professional programmieren
Du willst doch ein Dreieck oder?
Wie soll denn das dann aussehen? Links unten Rot Oben mitte Grün Unten rechts Blau :gruebel: alle "farben" oder auch schwarz und weiß? |
Re: Farbdreieck mit Delphi6 Professional programmieren
@Nicodius: hat jetzt aber gutwegs garnix mit OpenGl zu tun... Eher Canvas...
![]() |
Re: Farbdreieck mit Delphi6 Professional programmieren
Zitat:
|
Re: Farbdreieck mit Delphi6 Professional programmieren
Zitat:
![]() |
Re: Farbdreieck mit Delphi6 Professional programmieren
:oops: sorry
|
Re: Farbdreieck mit Delphi6 Professional programmieren
Da sind zwar nicht alle Farben drin aber vielleicht ist da ja so ähnlich gemeint:
Code:
glMatrixMode(GL_PROJECTION);
glLoadIdentity; glMatrixMode(GL_MODELVIEW); glLoadIdentity; glBegin(GL_TRIANGLES); glColor3f(1,0,0); glVertex3f(-1,-1,0); glColor3f(0,1,0); glVertex3f(1,-1,0); glColor3f(0,0,1); glVertex3f(-1,1,0); glEnd; |
Re: Farbdreieck mit Delphi6 Professional programmieren
ja ok erst einmal vielen dank für die tips. ich kenne mich leider der multimedia programmierung überhaupt nicht aus. was mache ich jetzt mit den code???
|
Re: Farbdreieck mit Delphi6 Professional programmieren
Ein Farbdreieck kannst du mit GradientFill() realisieren, allerdings sind da nicht alle Farben vorhanden die es gibt, man kann ein Triangle festlegen und jeder Ecke eine Farbe zuweisen. Geht aber nur ab Win2000 und Win98.
Delphi-Quellcode:
function GradientFill(hdc: HDC; pVertex: PTriVertex; dwNumVertex: DWORD; pMesh: Pointer; dwNumMesh: DWORD; dwMode: DWORD): Boolean; stdcall; external 'gdi32.dll' name 'GdiGradientFill';
type PTRIVERTEX = ^TTRIVERTEX; TTRIVERTEX = packed record x, y: Integer; Red, Green, Blue, Alpha: Word; end; {$R *.dfm} procedure TForm1.FormPaint(Sender: TObject); const VertexCount = 3; var Vertex: array[0..VertexCount - 1] of TTriVertex; Triangle: TGradientTriangle; begin // Punkt 1 Vertex[0].x := 10; Vertex[0].y := 10; Vertex[0].Red := $FF00; // 255 shl 8, siehe beschreibung im PSDK Vertex[0].Green := 0; Vertex[0].Blue := 0; Vertex[0].Alpha := 0; // Punkt 2 Vertex[1].x := 200; Vertex[1].y := 150; Vertex[1].Red := 0; Vertex[1].Green := $FF00; // 255 shl 8, siehe beschreibung im PSDK Vertex[1].Blue := 0; Vertex[1].Alpha := 0; // Punkt 3 Vertex[2].x := 50; Vertex[2].y := 200; Vertex[2].Red := 0; Vertex[2].Green := 0; Vertex[2].Blue := $FF00; // 255 shl 8, siehe beschreibung im PSDK Vertex[2].Alpha := 0; // Ein Triangle aus den 3 punkten erstellen Triangle.Vertex1 := 0; Triangle.Vertex2 := 1; Triangle.Vertex3 := 2; // Zeichnen GradientFill(Canvas.Handle, @Vertex[0], VertexCount, @Triangle, 1, GRADIENT_FILL_TRIANGLE); end; |
Re: Farbdreieck mit Delphi6 Professional programmieren
du saugst dir n template von
![]() ich würd des drittletzte für api und des letzte für die vcl verwenden. dann gibts da nen bereich wo sowas mit rendern auskommentiert ist, dort fügst du dencode von lars middendorf ein und schau dir'n paar tuts auf der seite an, dann verstehst du auch den code im template greets //edit:vcl+api vertauscht |
Re: Farbdreieck mit Delphi6 Professional programmieren
@w3seek: :roll:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:42 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 by Thomas Breitkreuz