Фрактал треугольник серпинского
Исходник и исполняемый файл здесь
С++ Builder 6
Компиляция и сборка под Windows 10
=
=
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
void __fastcall TForm1::tr(int x1,int y1,int x2,int y2,int x3,int y3)
{
Image1->Canvas->MoveTo(x1,y1);
Image1->Canvas->LineTo(x2,y2);
Image1->Canvas->MoveTo(floor(x2),floor(y2));
Image1->Canvas->LineTo(floor(x3),floor(y3));
Image1->Canvas->MoveTo(floor(x3),floor(y3));
Image1->Canvas->LineTo(floor(x1),floor(y1));
}
//----------------------------------------------------------------------------
void __fastcall TForm1::draw(float x1,float y1,float x2,float y2,float x3,float y3,float n)
{
float x1n, y1n, x2n, y2n, x3n, y3n ;
if ( n > 0 ){
x1n = (x1 + x2) / 2;
y1n = (y1 + y2) / 2;
x2n = (x2 + x3) / 2;
y2n = (y2 + y3) / 2;
x3n = (x3 + x1) / 2;
y3n = (y3 + y1) / 2;
tr( (int)x1n, (int)y1n, (int)x2n, (int)y2n, (int)x3n, (int)y3n);
draw(x1, y1, x1n, y1n, x3n, y3n, n - 1);
draw(x2, y2, x1n, y1n, x2n, y2n, n - 1);
draw(x3, y3, x2n, y2n, x3n, y3n, n - 1);
}
}
//----------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
iter = 6;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Image1->Canvas->FillRect(Image1->Canvas->ClipRect ) ;
// Image1->Canvas->Pen->Width=1;
// Image1->Canvas->Pen->Color=clGreen; //clGray;
iter = UpDown1->Position;
Label1->Caption= iter;
tr(320,10,600,470,40,470);
draw(320,10,600,470,40,470,iter);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::UpDown1Click(TObject *Sender, TUDBtnType Button)
{
Button1Click(Sender);
}
//---------------------------------------------------------------------------
=
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <math.h>
#include <Math.hpp>
#include <complex.h>
#include <ComCtrls.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TButton *Button1;
TImage *Image1;
TLabel *Label1;
TUpDown *UpDown1;
TLabel *Label2;
TBevel *Bevel1;
void __fastcall Button1Click(TObject *Sender);
void __fastcall UpDown1Click(TObject *Sender, TUDBtnType Button);
private: // User declarations
public: // User declarations
int iter ;
void __fastcall tr(int x1,int y1,int x2,int y2,int x3,int y3);
void __fastcall draw(float x1,float y1,float x2,float y2,float x3,float y3,float n);
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
=
|