rendered paste body static int angle = 0;
static int length = 100;
static int ratio = 50;
static int levels = 3;
static int x = 425/2;
static int y = 460/2;
System::Drawing::Pen^ myPen;
System::Drawing::Graphics^ g;
System::Drawing::Brush^ myBrush;
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
myPen = gcnew System::Drawing::Pen(Color::Black);
}
private: System::Void exitToolStripMenuItem1_Click(System::Object^ sender, System::EventArgs^ e) {
Close();
}
private: System::Void toolStripMenuItem2_Click(System::Object^ sender, System::EventArgs^ e) {
angle = 0;
drawFractal();
}
private: System::Void toolStripMenuItem3_Click(System::Object^ sender, System::EventArgs^ e) {
angle = 15;
drawFractal();
}
private: System::Void toolStripMenuItem4_Click(System::Object^ sender, System::EventArgs^ e) {
angle = 30;
drawFractal();
}
private: System::Void toolStripMenuItem5_Click(System::Object^ sender, System::EventArgs^ e) {
angle = 45;
drawFractal();
}
private: System::Void toolStripMenuItem6_Click(System::Object^ sender, System::EventArgs^ e) {
angle = 60;
drawFractal();
}
private: System::Void toolStripMenuItem7_Click(System::Object^ sender, System::EventArgs^ e) {
angle = 75;
drawFractal();
}
private: System::Void toolStripMenuItem8_Click(System::Object^ sender, System::EventArgs^ e) {
angle = 90;
drawFractal();
}
private: System::Void toolStripMenuItem9_Click(System::Object^ sender, System::EventArgs^ e) {
length = 75;
drawFractal();
}
private: System::Void toolStripMenuItem10_Click(System::Object^ sender, System::EventArgs^ e) {
length = 100;
drawFractal();
}
private: System::Void toolStripMenuItem11_Click(System::Object^ sender, System::EventArgs^ e) {
length = 150;
drawFractal();
}
private: System::Void toolStripMenuItem12_Click(System::Object^ sender, System::EventArgs^ e) {
ratio = 45;
drawFractal();
}
private: System::Void toolStripMenuItem13_Click(System::Object^ sender, System::EventArgs^ e) {
ratio = 50;
drawFractal();
}
private: System::Void toolStripMenuItem14_Click(System::Object^ sender, System::EventArgs^ e) {
ratio = 55;
drawFractal();
}
private: System::Void toolStripMenuItem15_Click(System::Object^ sender, System::EventArgs^ e) {
levels = 1;
drawFractal();
}
private: System::Void toolStripMenuItem16_Click(System::Object^ sender, System::EventArgs^ e) {
levels = 2;
drawFractal();
}
private: System::Void toolStripMenuItem17_Click(System::Object^ sender, System::EventArgs^ e) {
levels = 3;
drawFractal();
}
private: System::Void toolStripMenuItem18_Click(System::Object^ sender, System::EventArgs^ e) {
levels = 4;
drawFractal();
}
private: System::Void toolStripMenuItem19_Click(System::Object^ sender, System::EventArgs^ e) {
levels = 5;
drawFractal();
}
private: System::Void toolStripMenuItem20_Click(System::Object^ sender, System::EventArgs^ e) {
levels = 6;
drawFractal();
}
private: System::Void toolStripMenuItem21_Click(System::Object^ sender, System::EventArgs^ e) {
levels = 7;
drawFractal();
}
private: void drawFractal()
{
this ->Refresh();
drawBranch(x,y,angle,length,levels);
drawBranch(x,y,angle+90,length,levels);
drawBranch(x,y,angle+180,length,levels);
drawBranch(x,y,angle+270,length,levels);
}
private: void drawBranch(int x, int y, int ang, int len, int lev)
{
int newX = x + (int) (Math::Cos(Math::PI* ang/180.0)*len);
int newY = y + (int) (Math::Sin(Math::PI* ang/180.0)*len);
g = this->CreateGraphics();
g->DrawLine(myPen,x,y,newX,newY);
myBrush = gcnew System::Drawing::SolidBrush(Color::Red);
System::Drawing::Rectangle myRect(x,y,Math::Abs(newX-x),
Math::Abs(newY-y));
g->DrawRectangle(myPen,myRect);
g->FillRectangle(myBrush,myRect);
if (lev > 1)
{
drawBranch(newX,newY,ang,len*ratio/100,lev-1);
drawBranch(newX,newY,ang+90,len*ratio/100,lev-1);
drawBranch(newX,newY,ang+270,len*ratio/100,lev-1);
}
}
private: void newColor()
{
}
};