📄 form1.cs
字号:
}
private void menuItem9_Click(object sender, System.EventArgs e)
{
Graphics g=this.CreateGraphics();
Pen pen=new Pen(Color.Red,1);
g.Clear(this.BackColor);
const double pi=3.1416;
double a,x1,x2,y1,y2;
for(a=1.5;a<=2*pi;a+=pi/120)
{
x1=280+280*Math.Cos(0.25*a);
y1=240+(30-80*Math.Sin(3*a))*Math.Cos(a/2.5);
x2=280+280*Math.Cos(0.25*a+pi/4);
y2=240+(30-80*Math.Sin(3*a-pi/4))*Math.Cos(a/2.5);
g.DrawLine(pen,(int)x1,(int)y1,(int)x2,(int)y2);
}
}
private void menuItem10_Click(object sender, System.EventArgs e)
{
Graphics g=this.CreateGraphics();
Pen pen=new Pen(Color.Red,1);
g.Clear(this.BackColor);
int d,s;
const double pi=3.1416;
double a,x1,x2,y1,y2,l,m,o,p;
d=150;s=50;
for(a=0;a<=2*pi;a+=pi/120)
{
l=d+d/3.0*(1+1.0/2*Math.Cos(12*a))*Math.Cos(a);
x1=250+1.25*l*Math.Cos(a);
m=s+s/3.0*(1+1.0/2*Math.Sin(12*a))*Math.Cos(a);
x2=250+1.25*m*Math.Cos(a);
o=d+d/3.0*(1+1.0/2*Math.Cos(4*a))*Math.Sin(a);
y1=250-o*Math.Sin(a);
p=s+s/2.0*(1+1.0/2*Math.Sin(15*a))*Math.Sin(a);
y2=250-p*Math.Sin(a);
g.DrawLine(pen,(int)x1,(int)y1,(int)x2,(int)y2);
}
}
private void menuItem11_Click(object sender, System.EventArgs e)
{
Graphics g=this.CreateGraphics();
Pen pen=new Pen(Color.Red,1);
g.Clear(this.BackColor);
const double pi=3.1416;
double a,x1,x2,y1,y2;
for(a=1.5;a<=2*pi;a+=pi/250)
{
x1=220+220*Math.Cos(a);
y1=140+(80*Math.Sin(5*a))*Math.Cos(a);
x2=280+280*Math.Cos(a);
y2=240+(80*Math.Sin(5*a))*Math.Cos(a);
g.DrawLine(pen,(int)x1,(int)y1,(int)x2,(int)y2);
}
}
private void menuItem12_Click(object sender, System.EventArgs e)
{
//编程思想:
//直线线段的位置和长短均按三角函数规律分布,花形的角度为π/5。
//语句s=d*(1.0+Math.Sin(4.0*a));
//的4表示花形瓣数。
Graphics g=this.CreateGraphics();
Pen pen=new Pen(Color.Red,1);
g.Clear(this.BackColor);
const double pi=3.1416;
double a,s,d;
double x1,y1,x2,y2;
d=80.0;
for(a=0.0;a<=2*pi;a+=pi/360)
{
s=d*(1.0+Math.Sin(4.0*a));
x1=220+s*Math.Cos(a);
x2=220+s*Math.Cos(a+pi/5.0);
y1=160-s*Math.Sin(a);
y2=160-s*Math.Sin(a+pi/5.0);
g.DrawLine(pen,(int)x1,(int)y1,(int)x2,(int)y2);
}
}
private void menuItem13_Click(object sender, System.EventArgs e)
{
//编程思想:
//在上例程序的基础上,采用较复杂的三角函数式:
//s=d*(1.0+1.0/4*Math.Sin(12.0*a));
//f=s*(1.0+Math.Sin(4.0*a));
//控制画线的始点和终点坐标
Graphics g=this.CreateGraphics();
Pen pen=new Pen(Color.Red,1);
g.Clear(this.BackColor);
const double pi=3.1416;
double a,s,d,f;
double x1,y1,x2,y2;
d=80.0;
for(a=0.0;a<=2*pi;a+=pi/360)
{
s=d*(1.0+1.0/4*Math.Sin(12.0*a));
f=s*(1.0+Math.Sin(4.0*a));
x1=220+f*Math.Cos(a);
x2=220+f*Math.Cos(a+pi/5.0);
y1=160-f*Math.Sin(a);
y2=160-f*Math.Sin(a+pi/5.0);
g.DrawLine(pen,(int)x1,(int)y1,(int)x2,(int)y2);
}
//说明:
//程序中的(3
}
private void menuItem14_Click(object sender, System.EventArgs e)
{
Graphics g=this.CreateGraphics();
Pen pen=new Pen(Color.Red,1);
g.Clear(this.BackColor);
const double pi=3.1416;
double a,s,d,f;
double x1,y1,x2,y2;
d=60.0;
for(a=0.0;a<=2*pi;a+=2*pi/720)
{
s=d*(1.0+1.0/4*Math.Sin(12.0*a));
f=s*(1.0+Math.Sin(4.0*a));
x1=220+f*Math.Cos(a);
x2=220+f*Math.Cos(a+pi/5.0);
y1=160-f*Math.Sin(a);
y2=160-f*Math.Sin(a+pi/5.0);
g.DrawLine(pen,(int)x1,(int)y1,(int)x2,(int)y2);
}
}
private void menuItem15_Click(object sender, System.EventArgs e)
{
Graphics g=this.CreateGraphics();
Pen pen=new Pen(Color.Red,1);
g.Clear(this.BackColor);
const double pi=3.1416;
double a,s,d,f;
double x1,y1,x2,y2;
d=80.0;
for(a=0.0;a<=2*pi;a+=2*pi/960)
{
s=d*(1.0+1.0/4*Math.Sin(20.0*a));
f=s*(1.0+Math.Sin(4.0*a));
x1=220+f*Math.Cos(a);
x2=220+f*Math.Cos(a+pi/5.0);
y1=160-f*Math.Sin(a);
y2=160-f*Math.Sin(a+pi/5.0);
g.DrawLine(pen,(int)x1,(int)y1,(int)x2,(int)y2);
}
}
private void menuItem16_Click(object sender, System.EventArgs e)
{
Graphics g=this.CreateGraphics();
Pen pen=new Pen(Color.Red,1);
g.Clear(this.BackColor);
const double pi=3.1416;
int d,s;
double a,x1,y1,x2,y2,l,m,o,p;
d=150;s=50;
for(a=0;a<=2*pi;a+=pi/120)
{
l=d+d/3.0*(1+1.0/2*Math.Cos(12*a))*Math.Cos(a);
x1=250+1.25*l*Math.Cos(a);
m=s+s/3.0*(1+1.0/2*Math.Sin(12*a))*Math.Cos(a);
x2=250+1.25*m*Math.Cos(a);
o=d+d/3.0*(1+1.0/2*Math.Cos(4*a))*Math.Sin(a);
y1=250-o*Math.Sin(a);
p=s+s/2.0*(1+1.0/2*Math.Sin(15*a))*Math.Sin(a);
y2=250-p*Math.Sin(a);
g.DrawLine(pen,(int)x1,(int)y1,(int)x2,(int)y2);
}
}
private void menuItem17_Click(object sender, System.EventArgs e)
{
//摩尔图案代码
Graphics g=this.CreateGraphics();
Pen pen=new Pen(Color.Red,1);
g.Clear(this.BackColor);
const double pi=3.1416;
int x1,y1,x2,y2,d;
double a,r;
d=80;
//主要代码
for(a=0;a<=4*pi;a+=pi/120)
{
r=d*(1+0.5*Math.Sin(2.5*a));
x1=220+(int)(r*Math.Cos(a+pi/5));
x2=220+(int)(r*Math.Cos(a));
y1=160-(int)(r*Math.Sin(a));
y2=160-(int)(r*Math.Sin(a+pi/4));
g.DrawLine(pen,x1,y1,x2,y2);
}
}
private void menuItem18_Click(object sender, System.EventArgs e)
{
//摩尔图案代码
Graphics g=this.CreateGraphics();
Pen pen=new Pen(Color.Red,1);
g.Clear(this.BackColor);
const double pi=3.1416;
double x1,y1,x2,y2;
double a,b,c;
int i=0;
c=120.0f;
//主要代码
for(a=0;a<=2.0*pi;a+=pi/240.0f)
{
b=c*(1.0+1.5*Math.Sin(2.5*a)*Math.Cos(2.5*a));
x1=220.0+b*Math.Cos(a);
x2=220+b*Math.Cos(a+pi/4);
y1=160-b*Math.Sin(a)/2;
y2=160-b*Math.Sin(a+pi/4)/2;
g.DrawLine(pen,(int)x1,(int)y1,(int)x2,(int)y2);
i++;
}
}
private void menuItem19_Click(object sender, System.EventArgs e)
{
//长瓣花形图案
Graphics g=this.CreateGraphics();
Pen pen=new Pen(Color.Red,1);
g.Clear(this.BackColor);
const double pi=3.14159;
double a,s,d,f;
double x1,y1,x2,y2;
d=60.0;
//主要代码
for(a=0.0;a<=2*pi;a+=2*pi/720)
{
s=d*(1.0+1.0/4*Math.Sin(4.0*a));
f=s*(1.0+Math.Sin(8.0*a));
x1=220+f*Math.Cos(a);
x2=220+f*Math.Cos(a+pi/8.0);
y1=160-f*Math.Sin(a);
y2=160-f*Math.Sin(a+pi/8.0);
g.DrawLine(pen,(int)x1,(int)y1,(int)x2,(int)y2);
}
}
private void menuItem20_Click(object sender, System.EventArgs e)
{
//长瓣花形图案
Graphics g=this.CreateGraphics();
Pen pen=new Pen(Color.Red,1);
g.Clear(this.BackColor);
const double pi=3.14159;
double a,s,d,f;
double x1,y1,x2,y2;
d=60.0;
//主要代码
for(a=0.0;a<=2*pi;a+=2*pi/600)
{
s=d*(1.0+1.0/4.0*Math.Sin(3.0*a));
f=s*(1.0+Math.Sin(6.0*a));
x1=220+f*Math.Cos(a);
x2=220+f*Math.Cos(a+pi/6.0);
y1=160-f*Math.Sin(a);
y2=160-f*Math.Sin(a+pi/6.0);
g.DrawLine(pen,(int)x1,(int)y1,(int)x2,(int)y2);
}
}
private void menuItem21_Click(object sender, System.EventArgs e)
{
//编程思想:
//设画线点的y坐标固定,其x坐标按对数规律变化,即
// x=140+360*Log(n)/Log(25)
//图中直线段的间距依对数关系分布。
Graphics g=this.CreateGraphics();
Pen pen=new Pen(Color.Black,1);
g.Clear(this.BackColor);
int x,y,n;
y=4;
for(n=1;n<=25;n++)
{
x=40+(int)(360*Math.Log(n)/Math.Log(25));
g.DrawLine(pen,x,y,x,y+150);
}
y=160;
for(n=1;n<=25;n++)
{
x=400-(int)(360*Math.Log(n)/Math.Log(25));
g.DrawLine(pen,x,y,x,y+150);
}
}
private void menuItem22_Click(object sender, System.EventArgs e)
{
Graphics g=this.CreateGraphics();
Pen pen=new Pen(Color.Black,1);
g.Clear(this.BackColor);
int i,j,px,py,x1,y1;
double x,y,a;
const double PI=3.1416;
i=0;j=0;
for(px=40;px<=470;px+=60)
{
i=i+1;
for(py=4;py<=350;py+=60)
{
if(j==6)j=1;
else {j=j+1;}
//关键代码
if((i%2)==(j%2))
{
for(a=0;a<=PI;a+=PI/15)
{
y=60-60*Math.Sin(a);
y1=(int)y;
pen.Color=Color.Red;
g.DrawLine(pen,px,py+y1,px+60,py+y1);
}
}
else
{
for(a=0;a<=PI;a+=PI/25)
{
x=30-30*Math.Cos(a);
x1=(int)x;
pen.Color=Color.CornflowerBlue;
g.DrawLine(pen,px+x1,py,px+x1,py+60);
}
}
}
}
}
private void menuItem23_Click(object sender, System.EventArgs e)
{
//将半径为r的圆周分为n(奇数或偶数)等分,并将所有等分点用直线相连,
//则形成一幅类似金刚石的图案。
Graphics g=this.CreateGraphics();
Pen pen=new Pen(Color.Black,1);
g.Clear(this.BackColor);
double[] x=new double[50];
double[] y=new double[50];
int i,j,n;
double r,theta;
const double PI=3.1416;
r=80.0;
n=20;
theta=2.0*PI/n;
for(i=0;i<n;i++)
{
x[i]=2*r*Math.Cos(theta*(i+1))+220.0;
y[i]=160.0-r*Math.Sin(theta*(i+1));
}
for(i=1;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
g.DrawLine(pen,(int)x[i],(int)y[i],(int)x[j],(int)y[j]);
}
}
}
private void menuItem24_Click(object sender, System.EventArgs e)
{
Graphics g=this.CreateGraphics();
Pen pen=new Pen(Color.Black,1);
g.Clear(this.BackColor);
const double pi=3.1416;
int n,b,c,l;
double px,py,px2,py2,a,aa,x2,th,m,mx1,mx2,x,y;
n=4;
th=pi*(0.5-1.0/n);
a=Math.Tan(th);
b=50;
c=180;
l=30;
m=a*a/(4*(b-l*a));
mx1=Math.Sqrt((c-b)/m)+l;
mx2=-Math.Sqrt((c-b)/m)+l;
for(aa=0;aa<=2*pi*(n-1)/n+0.2;aa+=2*pi/n)
for(x=mx2;x<=mx1;x+=(mx1-mx2)/60)
{
x2=x-2*l;
y=m*(x-l)*(x-l)+b;
px=x*Math.Cos(aa)-y*Math.Sin(aa)+220;
px2=x2*Math.Cos(aa)-y*Math.Sin(aa)+220;
py=x*Math.Sin(aa)+y*Math.Cos(aa)+200;
py2=x2*Math.Sin(aa)+y*Math.Cos(aa)+200;
g.DrawLine(pen,(int)px,(int)py,(int)px2,(int)py2);
}
}
private void menuItem25_Click(object sender, System.EventArgs e)
{
Graphics g=this.CreateGraphics();
Pen pen=new Pen(Color.Black,1);
g.Clear(this.BackColor);
const double pi=3.1416;
int n,b,c,l;
double px,py,px2,py2,a,aa,x2,th,m,mx1,mx2,x,y;
n=5;
th=pi*(0.5-1.0/n);
a=Math.Tan(th);
b=50;
c=180;
l=30;
m=a*a/(4*(b-l*a));
mx1=Math.Sqrt((c-b)/m)+l;
mx2=-Math.Sqrt((c-b)/m)+l;
for(aa=0;aa<=2*pi*(n-1)/n+0.2;aa+=2*pi/n)
for(x=mx2;x<=mx1;x+=(mx1-mx2)/60)
{
x2=x-2*l;
y=m*(x-l)*(x-l)+b;
px=x*Math.Cos(aa)-y*Math.Sin(aa)+220;
px2=x2*Math.Cos(aa)-y*Math.Sin(aa)+220;
py=x*Math.Sin(aa)+y*Math.Cos(aa)+200;
py2=x2*Math.Sin(aa)+y*Math.Cos(aa)+200;
g.DrawLine(pen,(int)px,(int)py,(int)px2,(int)py2);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -