Код | #include <vcl.h> #pragma hdrstop
#include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm"
class Shape { int x,y; public: TColor color; Shape(int x1=random(300), int y1=random(250), TColor col=(TColor)random(0xffffff)) { x=x1; y=y1; color=col; } virtual void Draw(TCanvas *cn) { cn->Pen->Color=color; cn->Ellipse(x-3,y-3,x+3,y+3); } };
struct Points { int x,y; }; class Triangle : public Shape { protected: Points p[3]; public: Triangle(Points &p1,Points &p2,Points &p3, TColor col=(TColor)random(0xffffff)) { p[0]=p1; p[1]=p2; p[2]=p3; } void Draw(TCanvas *cn); };
void Triangle :: Draw(TCanvas *cn) { int i; cn->Pen->Color=color; cn->MoveTo(p[0].x,p[0].y); for(i=1;i<3;i++) { cn->LineTo(p[i].x,p[i].y); } cn->LineTo(p[0].x,p[0].y); } Shape** sh;
void RandPoint(TForm *f,Points &p);
TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender) { int pn,tn,all,i; Canvas->Brush->Color=clWhite; Canvas->Pen->Color=clWhite; Canvas->Rectangle(0,0,ClientWidth,ClientHeight); Points p1,p2,p3; tn=Edit1->Text.ToIntDef(3);
all=tn; sh=new Shape *[all]; for(i=0;i<tn;i++) { RandPoint(Form1,p1); RandPoint(Form1,p2); RandPoint(Form1,p3); sh[i]=new Triangle(p1,p2,p3); } for(i=0;i<all;i++) { sh[i]->Draw(Form1->Canvas); } for(i=0;i<all;i++) delete sh[i]; delete []sh; } //--------------------------------------------------------------------------- void RandPoint(TForm *f,Points &p) { p.x=random(f->ClientWidth); p.y=random(f->ClientHeight); } //-------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { Application->Terminate(); } //---------------------------------------------------------------------------
|
Добавлено через 7 минут и 18 секундпрограмма работает , только нужно нарисовать в каждом нарисованном треугольнике точку, конкретно центр треугольника.
|