All pastes #247931 Raw Edit

Anonymous

public text v1 · immutable
#247931 ·published 2006-11-14 00:18 UTC
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;
		static int shape = 0;
		System::Drawing::Pen^ myPen;
		System::Drawing::Graphics^ g;
		System::Drawing::Brush^ myBrush;
		private: array<Color>^ colorArray;
		static Random^ randomNumber;
	private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
				 g = this->CreateGraphics();
				 colorArray = gcnew array<Color>(12);
				 colorArray[0] = Color::Red; 
				 colorArray[1] = Color::Blue; 
				 colorArray[2] = Color::Yellow;
				 colorArray[3] = Color::Green;
				 colorArray[4] = Color::Orange; 
				 colorArray[5] = Color::Purple;
			   	 colorArray[6] = Color::Pink;
				 colorArray[7] = Color::Gray; 
				 colorArray[8] = Color::Teal; 
			 	 colorArray[9] = Color::LightGreen;
				 colorArray[10] = Color::LightBlue;
				 colorArray[11] = Color::Brown;
				 DateTime now = DateTime::Now;
				 randomNumber = gcnew Random(now.Millisecond);
			 }
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();
			 if(shape == 0)
			 {
				 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);
			 }
			 else if(shape == 1)
			 {
				 drawRectangle(x,y,angle,length,levels);
				 drawRectangle(x,y,angle+90,length,levels);
				 drawRectangle(x,y,angle+180,length,levels);
				 drawRectangle(x,y,angle+270,length,levels);
			 }
			 else
			 {
				 drawEllipse(x,y,angle,length,levels);
				 drawEllipse(x,y,angle+90,length,levels);
				 drawEllipse(x,y,angle+180,length,levels);
				 drawEllipse(x,y,angle+270,length,levels);
			 }
		 }
private: System::Void imagesToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
		 }
private: System::Void linesToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
			 shape = 0;
			 drawFractal();
		 }
private: System::Void rectanglesToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
			 shape = 1;
			 drawFractal();
		 }
private: System::Void ellipsesToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
			 shape = 2;
			 drawFractal();
		 }
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);
			 myPen = gcnew System::Drawing::Pen(colorArray[randomNumber->Next(0,11)]);
			 g->DrawLine(myPen,x,y,newX,newY);
			 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 drawRectangle(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);
			 myBrush = gcnew System::Drawing::SolidBrush(colorArray[randomNumber->Next(0,11)]);
			 Drawing::Rectangle myRect(x,y,Math::Abs(newX-x),Math::Abs(newY-y));
			 g->FillRectangle(myBrush,myRect);
			 if (lev > 1)
			 {
				 drawRectangle(newX,newY,ang,len*ratio/100,lev-1);
				 drawRectangle(newX,newY,ang+90,len*ratio/100,lev-1);
				 drawRectangle(newX,newY,ang+90,len*ratio/100,lev-1);
			 }
		 }
private: void drawEllipse(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);
			 myBrush = gcnew System::Drawing::SolidBrush(colorArray[randomNumber->Next(0,11)]);
			 Drawing::Rectangle myRect(x,y,Math::Abs(newX-x),Math::Abs(newY-y));
			 g->FillEllipse(myBrush,myRect);
			 if (lev > 1)
			 {
				 drawEllipse(newX,newY,ang,len*ratio/100,lev-1);
				 drawEllipse(newX,newY,ang+90,len*ratio/100,lev-1);
				 drawEllipse(newX,newY,ang+90,len*ratio/100,lev-1);
			 }
		 }
};
}