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

📄 form1.cs

📁 这是《C#图形程序设计》这本书的源代码
💻 CS
📖 第 1 页 / 共 3 页
字号:
					z=zz[i];
					double _x1,_y1,_z1;
					_x1=x;
					_y1=y;
					_z1=z;
					x=_x1*f[0,0]+_y1*f[1,0]+_z1*f[2,0]+f[3,0];
					y=_x1*f[0,1]+_y1*f[1,1]+_z1*f[2,1]+f[3,1];
					z=_x1*f[0,2]+_y1*f[1,2]+_z1*f[2,2]+f[3,2];
					if(i==0)
					{
						g.DrawLine(pen1,250+(int)x,100-(int)y,250+(int)x,100-(int)y);
					}
					else
					{
						g.DrawLine(pen1,250+(int)xo,100-(int)yo,250+(int)x,100-(int)y);
						xx[i]=x;xo=x;
						yy[i]=y;yo=y;
						zz[i]=z;zo=z;
					}
				}
			}
		}

		private void menuItem9_Click(object sender, System.EventArgs e)
		{
			double pi=3.1415926;
			int i;
			double th;
			double x,y,z;
			double xo,yo,zo;
			xo=0.0;yo=0.0;zo=0.0;
			double[,] f=new double[4,4];
			double[] xxx=new double[]{150.0,200.0,210.0,60.0,150.0};
			double[] yyy=new double[]{-55.0,-20.0,50.0,40.0,-55.0};
			double[] zzz=new double[]{0.0,0.0,0.0,0.0,0.0};
			double[] xx2=new double[]{150.0,200.0,210.0,60.0,150.0};
			double[] yy2=new double[]{-55.0,-20.0,50.0,40.0,-55.0};
			double[] zz2=new double[]{0.0,0.0,0.0,0.0,0.0};
			Graphics g=pictureBox1.CreateGraphics();
			Pen pen1=new Pen(Color.Blue);
			g.Clear(this.BackColor);
			
			for(i=0;i<=4;i++)
			{
				for(th=0;th<=2*pi;th+=pi/72)
				{
					double co=Math.Cos(pi/72);
					double si=Math.Sin(pi/72);
					f[0,0]=co;
					f[0,1]=0.0;
					f[0,2]=-si;
					f[0,3]=0.0;
					f[1,0]=0.0;
					f[1,1]=1.0;
					f[1,2]=0.0;
					f[1,3]=0.0;
					f[2,0]=si;
					f[2,1]=0.0;
					f[2,2]=co;
					f[2,3]=0.0;
					f[3,0]=0.0;
					f[3,1]=0.0;
					f[3,2]=0.0;
					f[3,3]=1.0;
					x=xxx[i];
					y=yyy[i];
					z=zzz[i];
					double _x,_y,_z;
					_x=x;
					_y=y;
					_z=z;
					x=_x*f[0,0]+_y*f[1,0]+_z*f[2,0]+f[3,0];
					y=_x*f[0,1]+_y*f[1,1]+_z*f[2,1]+f[3,1];
					z=_x*f[0,2]+_y*f[1,2]+_z*f[2,2]+f[3,2];
					xxx[i]=x;
					yyy[i]=y;
					zzz[i]=z;
					double co1=Math.Cos(pi/20);
					double si1=Math.Sin(pi/20);
					f[0,0]=co1;
					f[0,1]=0.0;
					f[0,2]=-si1;
					f[0,3]=0.0;
					f[1,0]=0.0;
					f[1,1]=1.0;
					f[1,2]=0.0;
					f[1,3]=0.0;
					f[2,0]=si1;
					f[2,1]=0.0;
					f[2,2]=co1;
					f[2,3]=0.0;
					f[3,0]=0.0;
					f[3,1]=0.0;
					f[3,2]=0.0;
					f[3,3]=1.0;
					double _x1,_y1,_z1;
					_x1=x;
					_y1=y;
					_z1=z;
					x=_x1*f[0,0]+_y1*f[1,0]+_z1*f[2,0]+f[3,0];
					y=_x1*f[0,1]+_y1*f[1,1]+_z1*f[2,1]+f[3,1];
					z=_x1*f[0,2]+_y1*f[1,2]+_z1*f[2,2]+f[3,2];
					if(i==0)
					{
						g.DrawLine(pen1,250+(int)x,100-(int)y,250+(int)x,100-(int)y);
					}
					else
					{
						g.DrawLine(pen1,250+(int)xo,100-(int)yo,250+(int)x,100-(int)y);
						xo=x;
						yo=y;
						zo=z;
					}
				}
			}
			
			for(th=0;th<=2*pi;th+=pi/72)
			{
				for(i=0;i<=4;i++)
				{
					double co2=Math.Cos(pi/72);
					double si2=Math.Sin(pi/72);
					f[0,0]=co2;
					f[0,1]=0.0;
					f[0,2]=-si2;
					f[0,3]=0.0;
					f[1,0]=0.0;
					f[1,1]=1.0;
					f[1,2]=0.0;
					f[1,3]=0.0;
					f[2,0]=si2;
					f[2,1]=0.0;
					f[2,2]=co2;
					f[2,3]=0.0;
					f[3,0]=0.0;
					f[3,1]=0.0;
					f[3,2]=0.0;
					f[3,3]=1.0;
					x=xx2[i];
					y=yy2[i];
					z=zz2[i];
					double _x2,_y2,_z2;
					_x2=x;
					_y2=y;
					_z2=z;
					x=_x2*f[0,0]+_y2*f[1,0]+_z2*f[2,0]+f[3,0];
					y=_x2*f[0,1]+_y2*f[1,1]+_z2*f[2,1]+f[3,1];
					z=_x2*f[0,2]+_y2*f[1,2]+_z2*f[2,2]+f[3,2];
					xx2[i]=x;
					yy2[i]=y;
					zz2[i]=z;
					double co3=Math.Cos(pi/72);
					double si3=Math.Sin(pi/72);
					f[0,0]=co3;
					f[0,1]=0.0;
					f[0,2]=-si3;
					f[0,3]=0.0;
					f[1,0]=0.0;
					f[1,1]=1.0;
					f[1,2]=0.0;
					f[1,3]=0.0;
					f[2,0]=si3;
					f[2,1]=0.0;
					f[2,2]=co3;
					f[2,3]=0.0;
					f[3,0]=0.0;
					f[3,1]=0.0;
					f[3,2]=0.0;
					f[3,3]=1.0;
					double _x3,_y3,_z3;
					_x3=x;
					_y3=y;
					_z3=z;
					x=_x3*f[0,0]+_y3*f[1,0]+_z3*f[2,0]+f[3,0];
					y=_x3*f[0,1]+_y3*f[1,1]+_z3*f[2,1]+f[3,1];
					z=_x3*f[0,2]+_y3*f[1,2]+_z3*f[2,2]+f[3,2];
					if(i==0)
					{
						g.DrawLine(pen1,250+(int)x,100-(int)y,250+(int)x,100-(int)y);
					}
					else
					{
						g.DrawLine(pen1,250+(int)xo,100-(int)yo,250+(int)x,100-(int)y);
						xo=x;
						yo=y;
						zo=z;
					}
				}
			}
		}

		private void menuItem10_Click(object sender, System.EventArgs e)
		{
			Graphics g=pictureBox1.CreateGraphics();
			Pen pen1=new Pen(Color.Blue);
			g.Clear(this.BackColor);
			int flag,r,h,n,nn,gx,gy;
			double pi,x,y,z,cx,cy,thx,thy,th;
			double xw,yw,zw;
			double[] ax=new double[9];
			double[] ay=new double[9];
			double[] az=new double[9];
			double[] bx=new double[9];
			double[] by=new double[9];
			double[] bz=new double[9];
			pi=3.14159;
			cx=200;
			cy=140;
			h=80;
			thy=0.2;
			nn=1;
			r=100;
			n=4;
			thx=0.2;
			flag=0;
			for(th=0;th<=2*pi+0.1;th+=2*pi/n)
			{
				x=r*Math.Cos(th);
				y=h;
				z=r*Math.Sin(th);
				zw=z;
				xw=x;
				x=zw*Math.Cos(thy)-xw*Math.Sin(thy);
				z=zw*Math.Sin(thy)+xw*Math.Cos(thy);
				yw=y;
				zw=z;
				y=yw*Math.Cos(thx)-zw*Math.Sin(thx);
				z=yw*Math.Sin(thx)+zw*Math.Cos(thx);
				x=x+20;y=y+20;z=z+20;
				ax[nn]=x;
				ay[nn]=y;
				az[nn]=z;
				nn=nn+1;
			}
			flag=0;
			nn=1;
			for(th=0;th<=2*pi+0.1;th+=2*pi/n)
			{
				x=r*Math.Cos(th);
				y=-h;
				z=r*Math.Sin(th);
				zw=z;
				xw=x;
				x=zw*Math.Cos(thy)-xw*Math.Sin(thy);
				z=zw*Math.Sin(thy)+xw*Math.Cos(thy);
				yw=y;
				zw=z;
				y=yw*Math.Cos(thx)-zw*Math.Sin(thx);
				z=yw*Math.Sin(thx)+zw*Math.Cos(thx);
				x=x+20;y=y+20;z=z+20;
				bx[nn]=x;
				by[nn]=y;
				bz[nn]=z;
				nn=nn+1;
			}
			for(nn=1;nn<=n;nn++)
			{
				flag=0;
				x=ax[nn];
				y=ay[nn];
				gx=(int)(cx+x);
				gy=(int)(cy+y);
				if(flag!=1)
				{
					p1.X=gx;
					p1.Y=gy;
					flag=1;
				}
				else
				{
					p2.X=gx;
					p2.Y=gy;
					g.DrawLine(pen1,p1,p2);
					p1=p2;
				}
				x=ax[nn+1];
				y=ay[nn+1];
				gx=(int)(cx+x);
				gy=(int)(cy+y);
				if(flag!=1)
				{
					p1.X=gx;
					p1.Y=gy;
					flag=1;
				}
				else
				{
					p2.X=gx;
					p2.Y=gy;
					g.DrawLine(pen1,p1,p2);
					p1=p2;
				}
				x=bx[nn+1];
				y=by[nn+1];
				gx=(int)(cx+x);
				gy=(int)(cy+y);
				if(flag!=1)
				{
					p1.X=gx;
					p1.Y=gy;
					flag=1;
				}
				else
				{
					p2.X=gx;
					p2.Y=gy;
					g.DrawLine(pen1,p1,p2);
					p1=p2;
				}
				x=bx[nn];
				y=by[nn];
				gx=(int)(cx+x);
				gy=(int)(cy+y);
				if(flag!=1)
				{
					p1.X=gx;
					p1.Y=gy;
					flag=1;
				}
				else
				{
					p2.X=gx;
					p2.Y=gy;
					g.DrawLine(pen1,p1,p2);
					p1=p2;
				}
			}
		}

		private void menuItem11_Click(object sender, System.EventArgs e)
		{
			Graphics g=pictureBox1.CreateGraphics();
			Pen pen1=new Pen(Color.Blue);
			g.Clear(this.BackColor);
			int flag,r,h,n,nn,gx,gy;
			double pi,x,y,z,cx,cy,thx,thy,th;
			double xw,yw,zw;
			double[] ax=new double[9];
			double[] ay=new double[9];
			double[] az=new double[9];
			double[] bx=new double[9];
			double[] by=new double[9];
			double[] bz=new double[9];
			pi=3.14159;
			cx=200;
			cy=140;
			h=80;
			thy=0.2;
			nn=1;
			r=100;
			n=4;
			thx=0.2;
			flag=0;
			for(th=0;th<=2*pi+0.1;th+=2*pi/n)
			{
				x=r*Math.Cos(th);
				y=h;
				z=r*Math.Sin(th);
				zw=z;
				xw=x;
				x=zw*Math.Cos(thy)-xw*Math.Sin(thy);
				z=zw*Math.Sin(thy)+xw*Math.Cos(thy);
				yw=y;
				zw=z;
				y=yw*Math.Cos(thx)-zw*Math.Sin(thx);
				z=yw*Math.Sin(thx)+zw*Math.Cos(thx);
				ax[nn]=x;
				ay[nn]=y;
				nn=nn+1;
			}
			flag=0;
			nn=1;
			for(th=0;th<=2*pi+0.1;th+=2*pi/n)
			{
				x=r*Math.Cos(th);
				y=-h;
				z=r*Math.Sin(th);
				zw=z;
				xw=x;
				x=zw*Math.Cos(thy)-xw*Math.Sin(thy);
				z=zw*Math.Sin(thy)+xw*Math.Cos(thy);
				yw=y;
				zw=z;
				y=yw*Math.Cos(thx)-zw*Math.Sin(thx);
				z=yw*Math.Sin(thx)+zw*Math.Cos(thx);
				bx[nn]=x;
				by[nn]=y;
				nn=nn+1;
			}
			for(nn=1;nn<=n;nn++)
			{
				flag=0;
				x=ax[nn];
				y=ay[nn];
				gx=(int)(cx+x);
				gy=(int)(cy+y);
				if(flag!=1)
				{
					p1.X=gx;
					p1.Y=gy;
					flag=1;
				}
				else
				{
					p2.X=gx;
					p2.Y=gy;
					g.DrawLine(pen1,p1,p2);
					p1=p2;
				}
				x=ax[nn+1];
				y=ay[nn+1];
				gx=(int)(cx+x);
				gy=(int)(cy+y);
				if(flag!=1)
				{
					p1.X=gx;
					p1.Y=gy;
					flag=1;
				}
				else
				{
					p2.X=gx;
					p2.Y=gy;
					g.DrawLine(pen1,p1,p2);
					p1=p2;
				}
				x=bx[nn+1];
				y=by[nn+1];
				gx=(int)(cx+x);
				gy=(int)(cy+y);
				if(flag!=1)
				{
					p1.X=gx;
					p1.Y=gy;
					flag=1;
				}
				else
				{
					p2.X=gx;
					p2.Y=gy;
					g.DrawLine(pen1,p1,p2);
					p1=p2;
				}
				x=bx[nn];
				y=by[nn];
				gx=(int)(cx+x);
				gy=(int)(cy+y);
				if(flag!=1)
				{
					p1.X=gx;
					p1.Y=gy;
					flag=1;
				}
				else
				{
					p2.X=gx;
					p2.Y=gy;
					g.DrawLine(pen1,p1,p2);
					p1=p2;
				}
			}
		}

		private void menuItem12_Click(object sender, System.EventArgs e)
		{
			Graphics g=pictureBox1.CreateGraphics();
			Pen pen1=new Pen(Color.Blue);
			g.Clear(this.BackColor);
			int flag,r,h,n,nn,gx,gy;
			double pi,x,y,z,cx,cy,thx,thy,th;
			double xw,yw,zw;
			double[] ax=new double[9];
			double[] ay=new double[9];
			double[] az=new double[9];
			double[] bx=new double[9];
			double[] by=new double[9];
			double[] bz=new double[9];
			pi=3.14159;
			cx=200;
			cy=140;
			h=80;
			thy=0.2;
			nn=1;
			r=100;
			n=4;
			thx=0.2;
			flag=0;
			for(th=0;th<=2*pi+0.1;th+=2*pi/n)
			{
				x=r*Math.Cos(th);
				y=h;
				z=r*Math.Sin(th);
				zw=z;
				xw=x;
				x=zw*Math.Cos(thy)-xw*Math.Sin(thy);
				z=zw*Math.Sin(thy)+xw*Math.Cos(thy);
				yw=y;
				zw=z;
				y=yw*Math.Cos(thx)-zw*Math.Sin(thx);
				z=yw*Math.Sin(thx)+zw*Math.Cos(thx);
				x=(int)(x/2);
				y=(int)(y/2);
				z=(int)(z/2);
				ax[nn]=x;
				ay[nn]=y;
				az[nn]=z;
				nn=nn+1;
			}
			flag=0;
			nn=1;
			for(th=0;th<=2*pi+0.1;th+=2*pi/n)
			{
				x=r*Math.Cos(th);
				y=-h;
				z=r*Math.Sin(th);
				zw=z;
				xw=x;
				x=zw*Math.Cos(thy)-xw*Math.Sin(thy);
				z=zw*Math.Sin(thy)+xw*Math.Cos(thy);
				yw=y;
				zw=z;
				y=yw*Math.Cos(thx)-zw*Math.Sin(thx);
				z=yw*Math.Sin(thx)+zw*Math.Cos(thx);
				x=(int)(x/2);
				y=(int)(y/2);
				z=(int)(z/2);
				bx[nn]=x;
				by[nn]=y;
				bz[nn]=z;
				nn=nn+1;
			}
			for(nn=1;nn<=n;nn++)
			{
				flag=0;
				x=ax[nn];
				y=ay[nn];
				gx=(int)(cx+x);
				gy=(int)(cy+y);
				if(flag!=1)
				{
					p1.X=gx;
					p1.Y=gy;
					flag=1;
				}
				else
				{
					p2.X=gx;
					p2.Y=gy;
					g.DrawLine(pen1,p1,p2);
					p1=p2;
				}
				x=ax[nn+1];
				y=ay[nn+1];
				gx=(int)(cx+x);
				gy=(int)(cy+y);
				if(flag!=1)
				{
					p1.X=gx;
					p1.Y=gy;
					flag=1;
				}
				else
				{
					p2.X=gx;
					p2.Y=gy;
					g.DrawLine(pen1,p1,p2);
					p1=p2;
				}
				x=bx[nn+1];
				y=by[nn+1];
				gx=(int)(cx+x);
				gy=(int)(cy+y);
				if(flag!=1)
				{
					p1.X=gx;
					p1.Y=gy;
					flag=1;
				}
				else
				{
					p2.X=gx;
					p2.Y=gy;
					g.DrawLine(pen1,p1,p2);
					p1=p2;
				}
				x=bx[nn];
				y=by[nn];
				gx=(int)(cx+x);
				gy=(int)(cy+y);
				if(flag!=1)
				{
					p1.X=gx;
					p1.Y=gy;
					flag=1;
				}
				else
				{
					p2.X=gx;
					p2.Y=gy;
					g.DrawLine(pen1,p1,p2);
					p1=p2;
				}
			}
		}

		private void menuItem13_Click(object sender, System.EventArgs e)
		{
			Graphics g=pictureBox1.CreateGraphics();
			Pen pen1=new Pen(Color.Blue);
			g.Clear(this.BackColor);
			int flag,r,h,n,nn,gx,gy;
			double pi,x,y,z,cx,cy,thx,thy,thz,th;
			double xw,yw,zw;
			double[] ax=new double[9];
			double[] ay=new double[9];
			double[] az=new double[9];
			double[] bx=new double[9];
			double[] by=new double[9];
			double[] bz=new double[9];
			pi=3.14159;
			cx=200;
			cy=140;
			h=80;
			thy=0.2;
			nn=1;
			r=100;
			n=4;
			thx=0.2;thz=0.4;
			flag=0;
			for(th=0;th<=2*pi+0.1;th+=2*pi/n)
			{
				x=r*Math.Cos(th);
				y=h;
				z=r*Math.Sin(th);
				zw=z;
				xw=x;
				x=zw*Math.Cos(thy)-xw*Math.Sin(thy);
				z=zw*Math.Sin(thy)+xw*Math.Cos(thy);
				yw=y;
				zw=z;
				y=yw*Math.Cos(thx)-zw*Math.Sin(thx);
				z=yw*Math.Sin(thx)+zw*Math.Cos(thx);
				xw=x;yw=y;
				y=xw*Math.Cos(thz)-yw*Math.Sin(thz);
				x=xw*Math.Sin(thz)+yw*Math.Cos(thz);
				ax[nn]=x;
				ay[nn]=y;
				az[nn]=z;
				nn=nn+1;
			}
			flag=0;
			nn=1;
			for(th=0;th<=2*pi+0.1;th+=2*pi/n)
			{
				x=r*Math.Cos(th);
				y=-h;
				z=r*Math.Sin(th);
				zw=z;
				xw=x;
				x=zw*Math.Cos(thy)-xw*Math.Sin(thy);
				z=zw*Math.Sin(thy)+xw*Math.Cos(thy);
				yw=y;
				zw=z;
				y=yw*Math.Cos(thx)-zw*Math.Sin(thx);
				z=yw*Math.Sin(thx)+zw*Math.Cos(thx);
				xw=x;yw=y;
				y=xw*Math.Cos(thz)-yw*Math.Sin(thz);
				x=xw*Math.Sin(thz)+yw*Math.Cos(thz);
				bx[nn]=x;
				by[nn]=y;
				bz[nn]=z;
				nn=nn+1;
			}
			for(nn=1;nn<=n;nn++)
			{
				flag=0;
				x=ax[nn];
				y=ay[nn];
				gx=(int)(cx+x);
				gy=(int)(cy+y);
				if(flag!=1)
				{
					p1.X=gx;
					p1.Y=gy;
					flag=1;
				}
				else
				{
					p2.X=gx;
					p2.Y=gy;
					g.DrawLine(pen1,p1,p2);
					p1=p2;
				}

⌨️ 快捷键说明

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