⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cs

📁 这是《C#图形程序设计》这本书的源代码
💻 CS
📖 第 1 页 / 共 2 页
字号:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace 随机图案
{
	/// <summary>
	/// Form1 的摘要说明。
	/// </summary>
	public class Form1 : System.Windows.Forms.Form
	{
		private System.Windows.Forms.MainMenu mainMenu1;
		private System.Windows.Forms.MenuItem menuItem1;
		private System.Windows.Forms.MenuItem menuItem2;
		private System.Windows.Forms.PictureBox pictureBox1;
		public Point p1=new Point();
		public Point p2=new Point();
		public Point p3=new Point();
		public bool status=false;
		private System.Windows.Forms.MenuItem menuItem3;
		private System.Windows.Forms.MenuItem menuItem4;
		private System.Windows.Forms.MenuItem menuItem5;
		private System.Windows.Forms.MenuItem menuItem6;
		private System.Windows.Forms.MenuItem menuItem7;
		private System.Windows.Forms.MenuItem menuItem8;
		private System.Windows.Forms.MenuItem menuItem9;
		private System.Windows.Forms.MenuItem menuItem10;
		/// <summary>
		/// 必需的设计器变量。
		/// </summary>
		private System.ComponentModel.Container components = null;

		public Form1()
		{
			//
			// Windows 窗体设计器支持所必需的
			//
			InitializeComponent();

			//
			// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
			//
		}

		/// <summary>
		/// 清理所有正在使用的资源。
		/// </summary>
		protected override void Dispose( bool disposing )
		{
			if( disposing )
			{
				if (components != null) 
				{
					components.Dispose();
				}
			}
			base.Dispose( disposing );
		}

		#region Windows 窗体设计器生成的代码
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{
			this.mainMenu1 = new System.Windows.Forms.MainMenu();
			this.menuItem1 = new System.Windows.Forms.MenuItem();
			this.menuItem2 = new System.Windows.Forms.MenuItem();
			this.pictureBox1 = new System.Windows.Forms.PictureBox();
			this.menuItem3 = new System.Windows.Forms.MenuItem();
			this.menuItem4 = new System.Windows.Forms.MenuItem();
			this.menuItem5 = new System.Windows.Forms.MenuItem();
			this.menuItem6 = new System.Windows.Forms.MenuItem();
			this.menuItem7 = new System.Windows.Forms.MenuItem();
			this.menuItem8 = new System.Windows.Forms.MenuItem();
			this.menuItem9 = new System.Windows.Forms.MenuItem();
			this.menuItem10 = new System.Windows.Forms.MenuItem();
			this.SuspendLayout();
			// 
			// mainMenu1
			// 
			this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
																					  this.menuItem1,
																					  this.menuItem6,
																					  this.menuItem8});
			// 
			// menuItem1
			// 
			this.menuItem1.Index = 0;
			this.menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
																					  this.menuItem2,
																					  this.menuItem3,
																					  this.menuItem4,
																					  this.menuItem5});
			this.menuItem1.Text = "随机图形设计";
			// 
			// menuItem2
			// 
			this.menuItem2.Index = 0;
			this.menuItem2.Text = "随机数改变花瓣数";
			this.menuItem2.Click += new System.EventHandler(this.menuItem2_Click);
			// 
			// pictureBox1
			// 
			this.pictureBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
				| System.Windows.Forms.AnchorStyles.Left) 
				| System.Windows.Forms.AnchorStyles.Right)));
			this.pictureBox1.BackColor = System.Drawing.SystemColors.ActiveCaptionText;
			this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
			this.pictureBox1.Location = new System.Drawing.Point(24, 16);
			this.pictureBox1.Name = "pictureBox1";
			this.pictureBox1.Size = new System.Drawing.Size(456, 344);
			this.pictureBox1.TabIndex = 0;
			this.pictureBox1.TabStop = false;
			// 
			// menuItem3
			// 
			this.menuItem3.Index = 1;
			this.menuItem3.Text = "随机画圆图案";
			this.menuItem3.Click += new System.EventHandler(this.menuItem3_Click);
			// 
			// menuItem4
			// 
			this.menuItem4.Index = 2;
			this.menuItem4.Text = "随机画3~8边形图案";
			this.menuItem4.Click += new System.EventHandler(this.menuItem4_Click);
			// 
			// menuItem5
			// 
			this.menuItem5.Index = 3;
			this.menuItem5.Text = "落叶";
			this.menuItem5.Click += new System.EventHandler(this.menuItem5_Click);
			// 
			// menuItem6
			// 
			this.menuItem6.Index = 1;
			this.menuItem6.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
																					  this.menuItem7});
			this.menuItem6.Text = "利用随机函数设计图案";
			// 
			// menuItem7
			// 
			this.menuItem7.Index = 0;
			this.menuItem7.Text = "利用随机函数进行图案设计";
			this.menuItem7.Click += new System.EventHandler(this.menuItem7_Click);
			// 
			// menuItem8
			// 
			this.menuItem8.Index = 2;
			this.menuItem8.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
																					  this.menuItem9,
																					  this.menuItem10});
			this.menuItem8.Text = "随机函数在物理中的应用";
			// 
			// menuItem9
			// 
			this.menuItem9.Index = 0;
			this.menuItem9.Text = "规范随机数生成";
			this.menuItem9.Click += new System.EventHandler(this.menuItem9_Click);
			// 
			// menuItem10
			// 
			this.menuItem10.Index = 1;
			this.menuItem10.Text = "按气体分子速度分布规律的随机数";
			this.menuItem10.Click += new System.EventHandler(this.menuItem10_Click);
			// 
			// Form1
			// 
			this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
			this.ClientSize = new System.Drawing.Size(504, 381);
			this.Controls.Add(this.pictureBox1);
			this.Menu = this.mainMenu1;
			this.Name = "Form1";
			this.Text = "Form1";
			this.ResumeLayout(false);

		}
		#endregion

		/// <summary>
		/// 应用程序的主入口点。
		/// </summary>
		[STAThread]
		static void Main() 
		{
			Application.Run(new Form1());
		}


		private void menuItem2_Click(object sender, System.EventArgs e)
		{
			status=true;
			//public virtual int Next();
			//返回一个小于所指定最大值的正随机数
			Graphics g=pictureBox1.CreateGraphics();
			Pen pen1=new Pen(Color.Black);
			g.Clear(pictureBox1.BackColor);
			int d,t,x,y,px,py,bx,by,ss;
			double a,b,c,pi;
			pi=3.14159;
			d=45;
			for(px=85;px<=255;px=px+90)
			{
				for(py=65;py<=235;py=py+90)
				{
					Random ran=new Random();
					ss=ran.Next(8);
					t=ss;
					for(a=0;a<=2*pi;a=a+pi/(10*t))
					{
						b=d+d/5*Math.Sin(a*t*3);
						c=b*(0.5+0.5*Math.Sin(t*a));
						x=px+(int)(c*Math.Cos(a));
						y=py-(int)(c*Math.Sin(a));
						if(a==0)
						{
							bx=x;by=y;
							p1.X=x;p1.Y=y;
						}
						else
						{
							p2.X=x;p2.Y=y;
							g.DrawLine(pen1,p1,p2);
							p1=p2;
						}
					}
				}
			}
		}

		private void menuItem3_Click(object sender, System.EventArgs e)
		{
			status=true;
			//编程思想:
			//圆心坐标由随机数产生,绘出半径为5的小圆图案
			//public virtual double NextDouble();
			//返回大于或等于0.0而小于1.0的双精度浮点数
			int x,y,n;
			double rr1,rr2;
			Graphics gobject1=pictureBox1.CreateGraphics();
			Pen pen1=new Pen(Color.Black);
			gobject1.Clear(pictureBox1.BackColor);
			Random Rnd=new Random();
			SolidBrush brush1=new SolidBrush(Color.Chocolate);
			for(n=1;n<=400;n++)
			{
				rr1=Rnd.NextDouble();
				rr2=Rnd.NextDouble();
				x=640-(int)(rr1*639);
				y=480-(int)(rr2*479);
				gobject1.FillEllipse(brush1,x-5,y-5,10,10);
				gobject1.DrawEllipse(pen1,x-5,y-5,10,10);
			}
		}

		private void menuItem4_Click(object sender, System.EventArgs e)
		{
			status=true;
			//将圆弧分成n等份(n>=3),顺序连接等份点画出n边形。
			//本程序取
			//       rr=Rnd.NextDouble();
			//		 n=8-(int)(6*rr);
			//其中,rr是随机数
			pictureBox1.Refresh();
			const double pi=3.14159;
			int x,y,x0,y0,n,bx,by;
			double th,rr;
			Point P1,P2,P3;
			Pen pen1=new Pen(Color.Black);
			Graphics gobject1=pictureBox1.CreateGraphics();
			n=2;
			P1=new Point();
			P2=new Point();
			P3=new Point();
			Random Rnd=new Random();
			bx=0;
			by=0;
			for(x=80;x<=500;x=x+60)
				for(y=60;y<=400;y=y+60)
				{
					rr=Rnd.NextDouble();
					n=8-(int)(6*rr);
					for(th=0;th<=2*pi;th=th+2*pi/n)
					{
						x0=x+(int)(20*Math.Sin(th));
						y0=y-(int)(20*Math.Cos(th));
						if(th==0)
						{
							bx=x0;
							by=y0;
							P1.X=bx;
							P1.Y=by;
						}
						else
						{
							P2.X=x0;
							P2.Y=y0;
							gobject1.DrawLine(pen1,P1,P2);
							P1=P2;
						}
						P3.X=bx;
						P3.Y=by;
						gobject1.DrawLine(pen1,P1,P3);
					}
				}
		}

		private void menuItem5_Click(object sender, System.EventArgs e)
		{
			float x=0,y=0;
			int xmax=540,ymax=380,i,xmin=50,ymin=20;
			int xw=(xmax-xmin),yw=(ymax-ymin);
			Random ran=new Random();
			Graphics g=pictureBox1.CreateGraphics();
			Pen p1=new Pen(Color.Blue);
			if(status==true)
			{
				g.Clear(pictureBox1.BackColor);
				status=false;
			}
			for(i=1;i<50;i++)
			{
				x=ran.Next(xw);
				y=ran.Next(yw);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -