📄 form1.cs
字号:
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 + -