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

📄 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.MenuItem menuItem3;
		private System.Windows.Forms.MenuItem menuItem4;
		public Point p1=new Point();
		public Point p2=new Point();
		private System.Windows.Forms.MenuItem menuItem5;
		private System.Windows.Forms.MenuItem menuItem6;
		private System.Windows.Forms.MenuItem menuItem8;
		private System.Windows.Forms.MenuItem menuItem9;
		private System.Windows.Forms.MenuItem menuItem7;
		private System.Windows.Forms.MenuItem menuItem10;
		private System.Windows.Forms.MenuItem menuItem11;
		private System.Windows.Forms.MenuItem menuItem12;
		private System.Windows.Forms.MenuItem menuItem13;
		private System.Windows.Forms.MenuItem menuItem14;
		private System.Windows.Forms.MenuItem menuItem15;
		private System.Windows.Forms.MenuItem menuItem16;
		private System.Windows.Forms.MenuItem menuItem17;
		private System.Windows.Forms.MenuItem menuItem18;
		private System.Windows.Forms.MenuItem menuItem19;
		private System.Windows.Forms.MenuItem menuItem20;
		private System.Windows.Forms.MenuItem menuItem21;
		private System.Windows.Forms.MenuItem menuItem22;
		private System.Windows.Forms.MenuItem menuItem23;
		private System.Windows.Forms.MenuItem menuItem24;
		/// <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.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.menuItem8 = new System.Windows.Forms.MenuItem();
			this.menuItem9 = new System.Windows.Forms.MenuItem();
			this.menuItem7 = new System.Windows.Forms.MenuItem();
			this.menuItem10 = new System.Windows.Forms.MenuItem();
			this.menuItem11 = new System.Windows.Forms.MenuItem();
			this.menuItem12 = new System.Windows.Forms.MenuItem();
			this.menuItem13 = new System.Windows.Forms.MenuItem();
			this.menuItem15 = new System.Windows.Forms.MenuItem();
			this.menuItem16 = new System.Windows.Forms.MenuItem();
			this.menuItem17 = new System.Windows.Forms.MenuItem();
			this.menuItem18 = new System.Windows.Forms.MenuItem();
			this.menuItem14 = new System.Windows.Forms.MenuItem();
			this.menuItem19 = new System.Windows.Forms.MenuItem();
			this.menuItem20 = new System.Windows.Forms.MenuItem();
			this.menuItem21 = new System.Windows.Forms.MenuItem();
			this.menuItem23 = new System.Windows.Forms.MenuItem();
			this.menuItem22 = new System.Windows.Forms.MenuItem();
			this.menuItem24 = new System.Windows.Forms.MenuItem();
			// 
			// mainMenu1
			// 
			this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
																					  this.menuItem1,
																					  this.menuItem7,
																					  this.menuItem11,
																					  this.menuItem19,
																					  this.menuItem21,
																					  this.menuItem22});
			// 
			// menuItem1
			// 
			this.menuItem1.Index = 0;
			this.menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
																					  this.menuItem2,
																					  this.menuItem3,
																					  this.menuItem4,
																					  this.menuItem5,
																					  this.menuItem6});
			this.menuItem1.Text = "内插法图形变换";
			// 
			// menuItem2
			// 
			this.menuItem2.Index = 0;
			this.menuItem2.Text = "抛物线到圆";
			this.menuItem2.Click += new System.EventHandler(this.menuItem2_Click);
			// 
			// 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 = "蔷薇花到圆";
			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 = 4;
			this.menuItem6.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
																					  this.menuItem8,
																					  this.menuItem9});
			this.menuItem6.Text = "对数内插变换";
			// 
			// menuItem8
			// 
			this.menuItem8.Index = 0;
			this.menuItem8.Text = "对数内插变换1";
			this.menuItem8.Click += new System.EventHandler(this.menuItem8_Click);
			// 
			// menuItem9
			// 
			this.menuItem9.Index = 1;
			this.menuItem9.Text = "对数内插变换2";
			this.menuItem9.Click += new System.EventHandler(this.menuItem9_Click);
			// 
			// menuItem7
			// 
			this.menuItem7.Index = 1;
			this.menuItem7.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
																					  this.menuItem10});
			this.menuItem7.Text = "图案的扇形变换";
			// 
			// menuItem10
			// 
			this.menuItem10.Index = 0;
			this.menuItem10.Text = "扇形变换";
			this.menuItem10.Click += new System.EventHandler(this.menuItem10_Click);
			// 
			// menuItem11
			// 
			this.menuItem11.Index = 2;
			this.menuItem11.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
																					   this.menuItem12,
																					   this.menuItem13,
																					   this.menuItem14});
			this.menuItem11.Text = "圆环变换";
			// 
			// menuItem12
			// 
			this.menuItem12.Index = 0;
			this.menuItem12.Text = "单层圆环变换";
			this.menuItem12.Click += new System.EventHandler(this.menuItem12_Click);
			// 
			// menuItem13
			// 
			this.menuItem13.Index = 1;
			this.menuItem13.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
																					   this.menuItem15,
																					   this.menuItem16,
																					   this.menuItem17,
																					   this.menuItem18});
			this.menuItem13.Text = "双层圆环变换";
			// 
			// menuItem15
			// 
			this.menuItem15.Index = 0;
			this.menuItem15.Text = "双层圆环变换案例";
			this.menuItem15.Click += new System.EventHandler(this.menuItem15_Click);
			// 
			// menuItem16
			// 
			this.menuItem16.Index = 1;
			this.menuItem16.Text = "双层圆环变换练习1";
			this.menuItem16.Click += new System.EventHandler(this.menuItem16_Click);
			// 
			// menuItem17
			// 
			this.menuItem17.Index = 2;
			this.menuItem17.Text = "双层圆环变换练习2";
			this.menuItem17.Click += new System.EventHandler(this.menuItem17_Click);
			// 
			// menuItem18
			// 
			this.menuItem18.Index = 3;
			this.menuItem18.Text = "双层圆环变换练习3";
			this.menuItem18.Click += new System.EventHandler(this.menuItem18_Click);
			// 
			// menuItem14
			// 
			this.menuItem14.Index = 2;
			this.menuItem14.Text = "三层圆环变换";
			this.menuItem14.Click += new System.EventHandler(this.menuItem14_Click);
			// 
			// menuItem19
			// 
			this.menuItem19.Index = 3;
			this.menuItem19.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
																					   this.menuItem20});
			this.menuItem19.Text = "球面镜变换";
			// 
			// menuItem20
			// 
			this.menuItem20.Index = 0;
			this.menuItem20.Text = "花形图案";
			this.menuItem20.Click += new System.EventHandler(this.menuItem20_Click);
			// 
			// menuItem21
			// 
			this.menuItem21.Index = 4;
			this.menuItem21.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
																					   this.menuItem23});
			this.menuItem21.Text = "三角函数变换";
			// 
			// menuItem23
			// 
			this.menuItem23.Index = 0;
			this.menuItem23.Text = "花形图案";
			this.menuItem23.Click += new System.EventHandler(this.menuItem23_Click);
			// 
			// menuItem22
			// 
			this.menuItem22.Index = 5;
			this.menuItem22.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
																					   this.menuItem24});
			this.menuItem22.Text = "三角形变换";
			// 
			// menuItem24
			// 
			this.menuItem24.Index = 0;
			this.menuItem24.Text = "6瓣花形图案";
			this.menuItem24.Click += new System.EventHandler(this.menuItem24_Click);
			// 
			// Form1
			// 
			this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
			this.ClientSize = new System.Drawing.Size(560, 408);
			this.Menu = this.mainMenu1;
			this.Name = "Form1";
			this.Text = "Form1";

		}
		#endregion

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

		private void menuItem2_Click(object sender, System.EventArgs e)
		{
			Graphics g=this.CreateGraphics();
			Pen pen1=new Pen(Color.Black);
			g.Clear(this.BackColor);
			int n,nn,x,y,bx,by,px,py,i;
			double pi,a;
			double[] x1=new double[130];
			double[] y1=new double[130];
			double[] x2=new double[130];
			double[] y2=new double[130];
			x=p1.X;y=p1.Y;
			bx=p2.X;by=p2.Y;
			pi=3.14159;n=-1;nn=35;i=0;
			for(a=0;a<=2*pi;a+=pi/60)
			{
				i++;
				x1[i]=28*Math.Cos(a);
				y1[i]=28*Math.Cos(2*a);
				x2[i]=28*Math.Cos(a);
				y2[i]=28*Math.Sin(a);
			}
			for(px=60;px<=470;px+=80)
			{
				for(py=60;py<=330;py+=60)
				{
					n++;
					for(i=1;i<=120;i++)
					{
						x=(int)((x2[i]-x1[i])/nn*n+x1[i]);
						y=(int)((y2[i]-y1[i])/nn*n+y1[i]);
						x+=px;
						y+=py;
						if(i==1)
						{
							p1.X=x;p1.Y=y;
						}
						else
						{
							bx=x;by=y;
							p2.X=bx;p2.Y=by;
							g.DrawLine(pen1,p1,p2);
							p1=p2;
						}
					}
					p1.X=x;p1.Y=y;
					g.DrawLine(pen1,p2,p1);
				}
			}
		}

		private void menuItem3_Click(object sender, System.EventArgs e)
		{
			Graphics g=this.CreateGraphics();
			Pen pen1=new Pen(Color.Red);
			g.Clear(this.BackColor);
			int n,x,y,bx,by,px,py,i,r;
			double pi,a;
			double[] x1=new double[130];
			double[] y1=new double[130];
			double[] x2=new double[130];
			double[] y2=new double[130];
			x=p1.X;y=p1.Y;
			bx=p2.X;by=p2.Y;
			pi=3.14159;
			r=35;
			i=0;
			for(a=0;a<=2*pi;a+=pi/60)
			{
				i++;
				x1[i]=1.1*(r/5*Math.Sin(8*a)+r*Math.Sin(2*a))*Math.Cos(a);
				y1[i]=0.85*(r/5*Math.Sin(8*a)+r*Math.Sin(2*a))*Math.Sin(a);			
			}
			i=0;
			for(a=0;a<=2*pi;a+=pi/60)
			{
				i++;
				x2[i]=(r/5*Math.Sin(6*a)+r*Math.Sin(2*a))*Math.Cos(a);
				y2[i]=(r/5*Math.Sin(6*a)+r*Math.Sin(2*a))*Math.Sin(a);;			
			}
			n=-1;
			for(px=70;px<=370;px+=60)
			{
				for(py=50;py<=350;py+=60)
				{
					n++;
					for(i=1;i<=120;i++)
					{
						x=(int)((x2[i]-x1[i])/35*n+x1[i]);
						y=(int)((y2[i]-y1[i])/35*n+y1[i]);
						x+=px;
						y+=py;
						if(i==1)
						{
							p1.X=x;p1.Y=y;
						}
						else
						{
							bx=x;by=y;
							p2.X=bx;p2.Y=by;
							g.DrawLine(pen1,p1,p2);
							p1=p2;
						}
					}
					p1.X=x;p1.Y=y;
					g.DrawLine(pen1,p2,p1);
				}
			}
		}

		private void menuItem4_Click(object sender, System.EventArgs e)
		{
			Graphics g=this.CreateGraphics();
			Pen pen1=new Pen(Color.Red);
			g.Clear(this.BackColor);
			int n,nn,x,y,bx,by,i,r;
			double pi,a,d,t;
			double[] x1=new double[130];
			double[] y1=new double[130];
			double[] x2=new double[130];
			double[] y2=new double[130];
			x=p1.X;y=p1.Y;
			bx=p2.X;by=p2.Y;
			pi=3.14159;nn=25;i=0;
			for(a=0;a<=2*pi;a+=pi/60)
			{
				r=120;
				i++;
				x1[i]=r*Math.Cos(a);
				y1[i]=-r*Math.Sin(a);
				d=r*(1+0.5*Math.Sin(12*a));
				t=d*(1/2+0.5*Math.Sin(4*a));
				x2[i]=t*Math.Cos(a);
				y2[i]=-t*Math.Sin(a);
			}
			for(n=0;n<=nn;n++)
			{
				for(i=1;i<=120;i++)
				{
					x=(int)((x2[i]-x1[i])/nn*n+x1[i]);
					y=(int)((y2[i]-y1[i])/nn*n+y1[i]);
					x+=200;
					y+=160;
					if(i==1)
					{
						p1.X=x;p1.Y=y;
					}
					else
					{
						bx=x;by=y;
						p2.X=bx;p2.Y=by;
						g.DrawLine(pen1,p1,p2);
						p1=p2;
					}
				}
				p1.X=x;p1.Y=y;
				g.DrawLine(pen1,p2,p1);
			}
		}

		private void menuItem5_Click(object sender, System.EventArgs e)
		{
			Graphics g=this.CreateGraphics();
			Pen pen1=new Pen(Color.Red);
			g.Clear(this.BackColor);
			int n,nn,x,y,bx,by,i,r,j,m,k,px;
			double pi,a,l,x0,y0,aa,dd;
			double[] x1=new double[130];
			double[] y1=new double[130];
			double[] x2=new double[130];
			double[] y2=new double[130];
			x=p1.X;y=p1.Y;
			bx=p2.X;by=p2.Y;
			pi=3.14159;nn=16;i=0;r=160;

			for(a=0;a<=2*pi;a+=pi/60)
			{
				i++;
				x1[i]=r*Math.Cos(a);
				y1[i]=-r*Math.Sin(a);
			}

			m=4;j=0;k=30;r=90;l=2*r*Math.Sin(pi/m);dd=l/k;
			for(a=0;a<=2*pi-2*pi/m;a+=2*pi/m)
			{
				aa=a+pi/2;
				x0=r*Math.Sin(aa);
				y0=r*Math.Cos(aa);
				for(i=0;i<=k-1;i++)
				{
					j++;
					x2[j]=x0+i*dd*Math.Sin(aa+pi/2+pi/m);
					y2[j]=y0+i*dd*Math.Cos(aa+pi/2+pi/m);
				}
			}
			for(n=0;n<=nn;n++)
			{
				px=(int)(60*n/nn+260);
				for(i=1;i<=120;i++)
				{
					x=(int)((x2[i]-x1[i])/nn*n+x1[i]);
					y=(int)((y2[i]-y1[i])/nn*n+y1[i]);
					x+=px;
					y+=150;
					if(i==1)
					{
						p1.X=x;p1.Y=y;
					}
					else
					{
						bx=x;by=y;
						p2.X=bx;p2.Y=by;
						g.DrawLine(pen1,p1,p2);
						p1=p2;
					}
				}
				p1.X=x;p1.Y=y;
				g.DrawLine(pen1,p2,p1);
			}
		}

	

		

		private void menuItem8_Click(object sender, System.EventArgs e)
		{
			Graphics g=this.CreateGraphics();
			Pen pen1=new Pen(Color.Red);
			g.Clear(this.BackColor);
			int n,nn,x,y,bx,by,i,r,j,m,k;
			double a,d,pi,pi1,l,x0,y0,aa,dd;
			double[] x1=new double[130];
			double[] y1=new double[130];
			double[] x2=new double[130];
			double[] y2=new double[130];
			x=p1.X;y=p1.Y;
			bx=p2.X;by=p2.Y;
			pi=3.14159;nn=25;i=0;r=50;pi1=pi/60;

			for(a=0;a<=2*pi;a+=pi1)
			{
				i++;
				d=r*(1+Math.Sin(5*(a+pi/4)));
				x1[i]=d*Math.Cos(a+pi/4);
				y1[i]=-d*Math.Sin(a+pi/4);
			}

			m=4;j=0;k=30;r=200;
			l=2*r*Math.Sin(pi/m);
			dd=l/k;
			for(a=0;a<=2*pi-2*pi/m;a+=2*pi/m)
			{
				aa=a+3*pi/4;
				x0=r*Math.Sin(aa);
				y0=r*Math.Cos(aa);
				for(i=0;i<=k-1;i++)
				{
					j++;
					x2[j]=x0+i*dd*Math.Sin(aa+pi/2+pi/m);
					y2[j]=y0+i*dd*Math.Cos(aa+pi/2+pi/m);

⌨️ 快捷键说明

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