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

📄 form1.cs

📁 这是《C#图形程序设计》这本书的源代码
💻 CS
📖 第 1 页 / 共 3 页
字号:
						k=2;
					}
					else
					{
						k=1;
					}
					for(a=0;a<=k*PI;a+=PI/(12.0*n))
					{
						x=(int)(px+(b/3*Math.Sin(n*p*a)+b*Math.Sin(n*a))*Math.Cos(a));
						y=(int)(py+(b/3*Math.Sin(n*p*a)+b*Math.Sin(n*a))*Math.Sin(a));
						if(a==0)
						{
							p1.X=x;
							p1.Y=y;
						}
						else
						{
							bx=x;
							by=y;
							p1.X=bx;
							p1.Y=by;
							g.DrawLine(pen1,p2,p1);
							p1=p2;
						}
						p2.X=x;
						p2.Y=y;
						g.DrawLine(pen1,p1,p2);
					}
				}
			}
			//说明:
			//本程序中x,y的计算公式加上了变形因数:
			//x=(int)(px+(b/3*Math.Sin(n*p*a)+b*Math.Sin(n*a))*Math.Cos(a));
			//y=(int)(py+(b/3*Math.Sin(n*p*a)+b*Math.Sin(n*a))*Math.Sin(a));
			//并取:
			//n=2,3,4,5,6,7
			//p=1,2,3,4,5,6
			//组成循环。
		}

		private void menuItem23_Click(object sender, System.EventArgs e)
		{
			//编程思想:
			//使用三角函数表达式控制画线点的坐标,可画出美丽的曲线。
			Graphics g=this.CreateGraphics();
			Pen pen1=new Pen(Color.Black);
			g.Clear(this.BackColor);
			const double PI=3.1416;
			double al,l,a;
			int x,y,py;
			for(py=20;py<=380;py=py+3)
			{
				al=(py-20)*4*PI/360;
				l=PI*Math.Cos(al);
				for(a=0;a<=6*PI;a+=PI/7)
				{
					x=(int)(600/(6*PI)*a+20);
					y=(int)(10*Math.Sin(a+Math.Cos(a)*PI-l)*Math.Cos(al)+py);
					if(a==0)
					{
						p1.X=x;
						p1.Y=y;
					}
					else
					{
						p2.X=x;p2.Y=y;
						g.DrawLine(pen1,p1,p2);
						p1=p2;
					}
				}
			}
		}

		private void menuItem24_Click(object sender, System.EventArgs e)
		{
			Graphics g=this.CreateGraphics();
			Pen pen1=new Pen(Color.Black);
			g.Clear(this.BackColor);
			const double PI=3.1416;
			double al,l,a,yy=0;
			int x,y,py;
			for(py=20;py<=380;py=py+3)
			{
				al=(py-20)*4*PI/360;
				l=PI*Math.Cos(al);
				for(a=0;a<=6*PI;a+=PI/7)
				{
					//修改部分:
					x=(int)(639/(12*PI)*a);
					y=(int)(yy+10*Math.Sin(a+Math.Sin(a)*PI-l)+py);
					//上面为修改部分
					if(a==0)
					{
						p1.X=x;
						p1.Y=y;
					}
					else
					{
						p2.X=x;p2.Y=y;
						g.DrawLine(pen1,p1,p2);
						p1=p2;
					}
				}
			}
		}

		private void menuItem25_Click(object sender, System.EventArgs e)
		{
			Graphics g=this.CreateGraphics();
			Pen pen1=new Pen(Color.Black);
			g.Clear(this.BackColor);
			const double PI=3.1416;
			double al,l,a,yy=0;
			int x,y,py;
			for(py=20;py<=380;py=py+3)
			{
				al=(py-20)*2*PI/360;
				l=PI*Math.Sin(al);
				for(a=0;a<=12*PI;a+=PI/30)
				{
					if(a!=0)
					{
						x=(int)(639/(12*PI)*a);
					}
					else
					{
						x=0;
					}
					y=(int)(yy+10*Math.Sin(a+Math.Sin(a)*PI-l)+py);
					if(a==0)
					{
						p1.X=x;
						p1.Y=y;
					}
					else
					{
						p2.X=x;p2.Y=y;
						g.DrawLine(pen1,p1,p2);
						p1=p2;
					}
				}
			}
		}

		private void menuItem26_Click(object sender, System.EventArgs e)
		{
			Graphics g=this.CreateGraphics();
			Pen pen1=new Pen(Color.Black);
			g.Clear(this.BackColor);
			const double PI=3.1416;
			double al,l,a,yy=0;
			int x,y,py;
			for(py=20;py<=380;py=py+3)
			{
				al=(py-20)*4*PI/360;
				l=PI*Math.Sin(al);
				for(a=0;a<=12*PI;a+=PI/7)
				{
					if(a!=0)
					{
						x=(int)(600/(6*PI)*a+20);
					}
					else
					{
						x=0;
					}
					y=(int)(yy+10*Math.Sin(a+Math.Sin(a)*PI-l)*Math.Cos(a)+py);
					if(a==0)
					{
						p1.X=x;
						p1.Y=y;
					}
					else
					{
						p2.X=x;p2.Y=y;
						g.DrawLine(pen1,p1,p2);
						p1=p2;
					}
				}
			}
		}

		private void menuItem28_Click(object sender, System.EventArgs e)
		{
			Graphics g=this.CreateGraphics();
			Pen pen1=new Pen(Color.Black);
			g.Clear(this.BackColor);
			const double pi=3.1416;
			int j,x,y,i,bx,by;
			double a,d,t,r;
			int[] x3=new int[300];
			int[] y3=new int[300];
			int un,uv,nn,k,hf,lg,x2,y2,px,py;
			un=8;
			uv=360/un;
			k=uv/2;
			hf=180-k;
			nn=3;
			lg=180-nn*uv;
			r=45;
			r=0.75*uv;
			j=0;
			for(a=0;a<=2*pi;a+=pi/60)
			{
				j++;
				d=r*(1+0.2*Math.Sin(12*a));
				t=d*(0.5+0.5*Math.Sin(4*a));
				x3[j]=(int)(t*Math.Cos(a));
				y3[j]=(int)(t*Math.Sin(a));
			}
			for(px=-hf;px<=hf;px+=uv)
			{
				for(py=-hf;py<hf;py+=uv)
				{
					if((px<-lg||px>lg)||(py<-lg||py>lg))
					{
						for(i=1;i<=j;i++)
						{
							x=x3[i]+px+320;
							y=y3[i]+py+200;
							x2=(int)(220-100*Math.Cos(pi*(x-140)/360));
							y2=(int)(160+100*Math.Cos(pi*(y-20)/360));
						
							if(i==1)
							{
								p1.X=x2;p1.Y=y2;
							}
							else
							{
								p1.X=x2;p1.Y=y2;
								g.DrawLine(pen1,p2,p1);
							}
							bx=x2;
							by=y2;
							p2.X=bx;p2.Y=by;
							g.DrawLine(pen1,p1,p2);
							p1=p2;
						}
					}
				}
			}
		}

		private void menuItem29_Click(object sender, System.EventArgs e)
		{
			Graphics g=this.CreateGraphics();
			Pen pen1=new Pen(Color.Red);
			g.Clear(this.BackColor);
			const double pi=3.1416;
			int px,py,x,y,r,nn,i,n;

			int[] x1=new int[300];
			int[] y1=new int[300];
			int[] x2=new int[300];
			int[] y2=new int[300];
			double a;

			r=35;n=-1;nn=35;
			for(a=0,i=1;a<=2*pi;a=a+pi/60,i++)
			{
				x1[i]=(int)(1.1*(r/5*Math.Sin(8*a)+r*Math.Sin(2*a))*Math.Cos(a));
				y1[i]=(int)(0.85*(r/5*Math.Sin(8*a)+r*Math.Sin(2*a))*Math.Sin(a));
				x2[i]=(int)((r/5*Math.Sin(6*a)+r*Math.Sin(2*a))*Math.Cos(a));
				y2[i]=(int)((r/5*Math.Sin(6*a)+r*Math.Sin(2*a))*Math.Sin(a));
			}

			for(px=120;px<=570;px=px+60)
			{
				for(py=50;py<=350;py=py+60)
				{
					n=n+1;
					if(px==120||px==540||py==50||py==350)
					{
						for(i=1;i<=120;i++)
						{
							x=(x2[i]-x1[i])/nn*n+x1[i];
							y=(y2[i]=y1[i])/nn*n*2+y1[i];
							x=(int)((x+px)/2);
							y=(int)((y+py)/2);
							if(i==1)
							{
								p1.X=x;p1.Y=y;
							}
							else
							{
								p2.X=x;p2.Y=y;
								g.DrawLine(pen1,p2,p1);
								p1=p2;
							}
						}
					}
				}
			}
		}

		private void menuItem30_Click(object sender, System.EventArgs e)
		{
			Graphics g=this.CreateGraphics();
			Pen pen1=new Pen(Color.Red);
			g.Clear(this.BackColor);
			const double pi=3.1416;
			int px,py,x,y,r,nn,i,n,x0,l,w,px1,j,k,py1,x4,y4,x5,y5;

			int[] x1=new int[300];
			int[] y1=new int[300];
			int[] x2=new int[300];
			int[] y2=new int[300];
			int[] x3=new int[300];
			int[] y3=new int[300];
			double a,a1,d,t,th;

			r=35;n=-1;nn=35;
			for(a=0,i=1;a<=2*pi;a=a+pi/60,i++)
			{
				x1[i]=(int)(1.1*(r/5*Math.Sin(8*a)+r*Math.Sin(2*a))*Math.Cos(a));
				y1[i]=(int)(0.85*(r/5*Math.Sin(8*a)+r*Math.Sin(2*a))*Math.Sin(a));
				x2[i]=(int)((r/5*Math.Sin(6*a)+r*Math.Sin(2*a))*Math.Cos(a));
				y2[i]=(int)((r/5*Math.Sin(6*a)+r*Math.Sin(2*a))*Math.Sin(a));
			}

			for(px=120;px<=570;px=px+60)
			{
				for(py=50;py<=350;py=py+60)
				{
					n=n+1;
					if(px==120||px==540||py==50||py==350)
					{
						for(i=1;i<=120;i++)
						{
							x=(x2[i]-x1[i])/nn*n+x1[i];
							y=(y2[i]=y1[i])/nn*n*2+y1[i];
							x=(int)((x+px)/2);
							y=(int)((y+py)/2);
							if(i==1)
							{
								p1.X=x;p1.Y=y;
							}
							else
							{
								p2.X=x;p2.Y=y;
								g.DrawLine(pen1,p2,p1);
								p1=p2;
							}
						}
					}
				}
				x0=800;
				l=0;
				w=100;
				j=0;
				for(a1=0;a1<=2*pi;a1+=pi/120)
				{
					j=j+1;
					d=28*(0.8+0.2*Math.Sin(18*a1));
					t=d*(1+Math.Sin(6*a1));
					x3[j]=(int)(t*Math.Cos(a1)*1.2);
					y3[j]=(int)(t*Math.Sin(a1));
				}
				py1=w/4;
				for(px1=x0/16;px1<=15*x0/16;px1+=x0/8)
				{
					for(k=1;k<=j;k++)
					{
						x4=x3[k]+px1;
						y4=y3[k]+py1;
						th=2*pi*(x0-x4)/x0;
						x5=(int)((1+y4)*Math.Cos(th)+160);
						y5=(int)((1+y4)*Math.Sin(th)+100);
						if(k==1)
						{
							p1.X=x5;
							p1.Y=y5;
						}
						else
						{
							p2.X=x5;p2.Y=y5;
							g.DrawLine(pen1,p1,p2);
							p1=p2;
						}
					}
				}
			}
		}

		private void menuItem32_Click(object sender, System.EventArgs e)
		{
			//心脏线的极坐标方程为:
			//ρ=a*(1-cosθ)或
			//ρ=a*(1-sinθ)
			Graphics g=this.CreateGraphics();
			Pen pen1=new Pen(Color.Blue);
			int x,y;
			double a,r,i;
			const double pi=3.1416;
			g.Clear(this.BackColor);
			a=60.0;
			for(i=0.0;i<=2.0*pi/3.0;i+=pi/180.0)
			{
				r=a*(1-Math.Cos(3.0*i));
				x=(int)(r*Math.Cos(3.0*i))+240;
				y=(int)(r*Math.Sin(3.0*i))+120;
				if(i==0.0)
				{
					p1.X=x;p1.Y=y;
				}
				else
				{
					p2.X=x;p2.Y=y;
					g.DrawLine(pen1,p1,p2);
					p1=p2;
				}
			}
		}

		private void menuItem33_Click(object sender, System.EventArgs e)
		{
			//玫瑰线的极坐标方程为:
			//ρ=a*coskθ或
			//ρ=a*sinkθ
			Graphics g=this.CreateGraphics();
			Pen pen1=new Pen(Color.Blue);
			g.Clear(this.BackColor);
			int x,y;
			double a,r,i;
			const double pi=3.1416;
			a=100.0;
			for(i=0.0;i<=6.0*pi/3.0;i+=pi/180.0)
			{
				r=a*Math.Cos(4.0*i);
				x=(int)(r*Math.Cos(i))+200;
				y=(int)(r*Math.Sin(i))+120;
				if(i==0.0)
				{
					p1.X=x;p1.Y=y;
				}
				else
				{
					p2.X=x;p2.Y=y;
					g.DrawLine(pen1,p1,p2);
					p1=p2;
				}
			}
		}

		private void menuItem34_Click(object sender, System.EventArgs e)
		{
			//坩线的极坐标方程为:
			//ρ=b-acosθ (b<a)
			
			Graphics g=this.CreateGraphics();
			Pen pen1=new Pen(Color.Blue);
			g.Clear(this.BackColor);
			int x,y;
			double a,r,i;
			const double pi=3.1416;
			a=100.0;
			for(i=0.0;i<=6.0*pi/3.0;i+=pi/180.0)
			{
				r=60.0-a*Math.Cos(3.0*i);
				x=(int)(r*Math.Cos(3.0*i))+220;
				y=(int)(r*Math.Sin(3.0*i))+120;
				if(i==0.0)
				{
					p1.X=x;p1.Y=y;
				}
				else
				{
					p2.X=x;p2.Y=y;
					g.DrawLine(pen1,p1,p2);
					p1=p2;
				}
			}
		}

		private void menuItem35_Click(object sender, System.EventArgs e)
		{
			Graphics g=this.CreateGraphics();
			Pen pen1=new Pen(Color.Blue);
			g.Clear(this.BackColor);
			int cx,cy,flag,k,x,y;
			double a,b,th,p;
			const double pi=3.1416;
			a=40;
			cx=80;
			cy=80;
			flag=0;
			k=32;
			for(p=0.6;p<=1.8;p+=0.4)
			{
				b=a*p;
				for(th=-pi;th<=5*pi;th+=pi/k)
				{
					x=(int)(a*th-b*Math.Sin(th))+cx;
					y=(int)(a-b*Math.Cos(th))+cy;
					if(flag==0.0)
					{
						p1.X=x;p1.Y=y;
					}
					else
					{
						p2.X=x;p2.Y=y;
						g.DrawLine(pen1,p1,p2);
						p1=p2;
					}
					flag=1;
				}
			}
		}
	}
}

⌨️ 快捷键说明

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