Image-Komponente - Grundlegende Funktionen


Rectangle (x1, y1, x2, y2)→ zeichnet ein Rechteck mit einem Scheitelpunkt ausgehend vom Punkt (x1, y1) und dem gegenüberliegenden Punkt (x2, y2)

Ellipse (x1, y1, x2, y2)→ zeichnet eine Ellipse in einem durch die Punkte (x1, y1) und (x2, y2) definierten Rechteck

Wie kann man die Innenseite der Rechtecke und Ellipsen malen?
Im Canvas-Objekt, gibt es ein Objekt namens Brush (Pinsel) und ein Objekt namens Pen (Stift), beide haben Farbeigenschaften für die Fläche und die Kontur der Objekte.
Um ein Objekt in einer Farbe zu malen müssen die Eigenschaften von Bürste und Pinsel entsprechend angepasst werden.

//Setzen der Brush-Farbe auf Weiß
Image1->Canvas->Brush->Color=clWhite;
//Füllen des gesamten Bereiches
Image1->Canvas->FillRect(Form1->Image1->Canvas->ClipRect);
//Füllen des gesamten Bereiches: //selber Effekt wie oben.
Image1->Canvas->FillRect(ClientRect);
 
//Malen eines kleinen Männchen
Image1->Canvas->Brush->Color= clRed;
Image1->Canvas->Ellipse(195, 117, 205, 128);
Image1->Canvas->Brush->Color= clBlue;
Image1->Canvas->Rectangle (192, 130,208,160);
Image1->Canvas->Brush->Color= clGreen;
Image1->Canvas->Rectangle (187, 130,191,162);
Image1->Canvas->Brush->Color= clYellow;
Image1->Canvas->Rectangle (209, 130,213,162);
Image1->Canvas->Brush->Color= clMaroon;
Image1->Canvas->Rectangle (193,161,199,200);
Image1->Canvas->Brush->Color= clPurple;
Image1->Canvas->Rectangle (201,161,207,200);

Image1->Canvas->Pen->Color = clBlue;
Image1->Canvas->MoveTo(10, 10);
Image1->Canvas->LineTo(100, 100);
Image1->Canvas->Brush->Color = clBtnFace;
Image1->Canvas->Font->Name = "Arial";
Image1->Canvas->TextOut(Image1->Canvas->PenPos.x, Image1->Canvas->PenPos.y,"This is the end of the line");

//Zufallslauf von Punkten;
Image1->Canvas->Brush->Color=clWhite;
Image1->Canvas->FillRect(Form1->Image1->Canvas->ClipRect);
int x=200,y=150;
srand(time(0));
for (int i=0;i<10000 ;i++ ) {
int x1=rand()%3-1;
int y1=rand()%3-1;
x=x+x1;
y=y+y1;
Image1->Canvas->Pixels[x][y]=TColor(RGB(255,0,0));
Image1->Refresh();
Sleep(1);

//Ausfüllen des gesamten Bereiches mit zufälligen Farben;
srand(time(0));
for (int i=0;i<400 ;i++ ) {
for (int j=0;j<300 ;j++ ) {
int r=rand()%255;
int g=rand()%255;
int b=rand()%255;
   Image1->Canvas->Pixels[i][j]=TColor(RGB(r,g,b));
}
}