Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Farbdreieck mit Delphi6 Professional programmieren (https://www.delphipraxis.net/24795-farbdreieck-mit-delphi6-professional-programmieren.html)

Christian18 26. Jun 2004 14:41


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

Nicodius 26. Jun 2004 14:44

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 Hier im Forum suchenRGB oder nach Hier im Forum suchenPixels

HIER FINDEST DU EINEN BEISPIELCODE

StefanDP 26. Jun 2004 14:50

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ß?

sCrAPt 26. Jun 2004 14:51

Re: Farbdreieck mit Delphi6 Professional programmieren
 
@Nicodius: hat jetzt aber gutwegs garnix mit OpenGl zu tun... Eher Canvas...

http://www.og4all.de/meindphase, sCrAPt

Nicodius 26. Jun 2004 14:54

Re: Farbdreieck mit Delphi6 Professional programmieren
 
Zitat:

aber RGB und nacher mit Canvas.Pixels[i,j] := RGB(e,f,g);
hab ich je opengl erwähnt?

sCrAPt 26. Jun 2004 14:56

Re: Farbdreieck mit Delphi6 Professional programmieren
 
Zitat:

Zitat von Christian18
es soll dazu OpenGL benutzt werden

:roll:

http://www.og4all.de/meindphase, sCrAPt

Nicodius 26. Jun 2004 14:58

Re: Farbdreieck mit Delphi6 Professional programmieren
 
:oops: sorry

LarsMiddendorf 26. Jun 2004 15:02

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;

Christian18 26. Jun 2004 17:58

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???

w3seek 26. Jun 2004 19:31

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;


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:27 Uhr.
Seite 1 von 2  1 2      

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