📄 form1.cs
字号:
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.PictureBox pictureBox1;
public Point p1=new Point();
public Point p2=new Point();
public Point p3=new Point();
public bool status=false;
private System.Windows.Forms.MenuItem menuItem3;
private System.Windows.Forms.MenuItem menuItem4;
private System.Windows.Forms.MenuItem menuItem5;
private System.Windows.Forms.MenuItem menuItem6;
private System.Windows.Forms.MenuItem menuItem7;
private System.Windows.Forms.MenuItem menuItem8;
private System.Windows.Forms.MenuItem menuItem9;
private System.Windows.Forms.MenuItem menuItem10;
/// <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.pictureBox1 = new System.Windows.Forms.PictureBox();
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.menuItem7 = new System.Windows.Forms.MenuItem();
this.menuItem8 = new System.Windows.Forms.MenuItem();
this.menuItem9 = new System.Windows.Forms.MenuItem();
this.menuItem10 = new System.Windows.Forms.MenuItem();
this.SuspendLayout();
//
// mainMenu1
//
this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem1,
this.menuItem6,
this.menuItem8});
//
// menuItem1
//
this.menuItem1.Index = 0;
this.menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem2,
this.menuItem3,
this.menuItem4,
this.menuItem5});
this.menuItem1.Text = "随机图形设计";
//
// menuItem2
//
this.menuItem2.Index = 0;
this.menuItem2.Text = "随机数改变花瓣数";
this.menuItem2.Click += new System.EventHandler(this.menuItem2_Click);
//
// pictureBox1
//
this.pictureBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.pictureBox1.BackColor = System.Drawing.SystemColors.ActiveCaptionText;
this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.pictureBox1.Location = new System.Drawing.Point(24, 16);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(456, 344);
this.pictureBox1.TabIndex = 0;
this.pictureBox1.TabStop = false;
//
// 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 = "随机画3~8边形图案";
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 = 1;
this.menuItem6.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem7});
this.menuItem6.Text = "利用随机函数设计图案";
//
// menuItem7
//
this.menuItem7.Index = 0;
this.menuItem7.Text = "利用随机函数进行图案设计";
this.menuItem7.Click += new System.EventHandler(this.menuItem7_Click);
//
// menuItem8
//
this.menuItem8.Index = 2;
this.menuItem8.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem9,
this.menuItem10});
this.menuItem8.Text = "随机函数在物理中的应用";
//
// menuItem9
//
this.menuItem9.Index = 0;
this.menuItem9.Text = "规范随机数生成";
this.menuItem9.Click += new System.EventHandler(this.menuItem9_Click);
//
// menuItem10
//
this.menuItem10.Index = 1;
this.menuItem10.Text = "按气体分子速度分布规律的随机数";
this.menuItem10.Click += new System.EventHandler(this.menuItem10_Click);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(504, 381);
this.Controls.Add(this.pictureBox1);
this.Menu = this.mainMenu1;
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void menuItem2_Click(object sender, System.EventArgs e)
{
status=true;
//public virtual int Next();
//返回一个小于所指定最大值的正随机数
Graphics g=pictureBox1.CreateGraphics();
Pen pen1=new Pen(Color.Black);
g.Clear(pictureBox1.BackColor);
int d,t,x,y,px,py,bx,by,ss;
double a,b,c,pi;
pi=3.14159;
d=45;
for(px=85;px<=255;px=px+90)
{
for(py=65;py<=235;py=py+90)
{
Random ran=new Random();
ss=ran.Next(8);
t=ss;
for(a=0;a<=2*pi;a=a+pi/(10*t))
{
b=d+d/5*Math.Sin(a*t*3);
c=b*(0.5+0.5*Math.Sin(t*a));
x=px+(int)(c*Math.Cos(a));
y=py-(int)(c*Math.Sin(a));
if(a==0)
{
bx=x;by=y;
p1.X=x;p1.Y=y;
}
else
{
p2.X=x;p2.Y=y;
g.DrawLine(pen1,p1,p2);
p1=p2;
}
}
}
}
}
private void menuItem3_Click(object sender, System.EventArgs e)
{
status=true;
//编程思想:
//圆心坐标由随机数产生,绘出半径为5的小圆图案
//public virtual double NextDouble();
//返回大于或等于0.0而小于1.0的双精度浮点数
int x,y,n;
double rr1,rr2;
Graphics gobject1=pictureBox1.CreateGraphics();
Pen pen1=new Pen(Color.Black);
gobject1.Clear(pictureBox1.BackColor);
Random Rnd=new Random();
SolidBrush brush1=new SolidBrush(Color.Chocolate);
for(n=1;n<=400;n++)
{
rr1=Rnd.NextDouble();
rr2=Rnd.NextDouble();
x=640-(int)(rr1*639);
y=480-(int)(rr2*479);
gobject1.FillEllipse(brush1,x-5,y-5,10,10);
gobject1.DrawEllipse(pen1,x-5,y-5,10,10);
}
}
private void menuItem4_Click(object sender, System.EventArgs e)
{
status=true;
//将圆弧分成n等份(n>=3),顺序连接等份点画出n边形。
//本程序取
// rr=Rnd.NextDouble();
// n=8-(int)(6*rr);
//其中,rr是随机数
pictureBox1.Refresh();
const double pi=3.14159;
int x,y,x0,y0,n,bx,by;
double th,rr;
Point P1,P2,P3;
Pen pen1=new Pen(Color.Black);
Graphics gobject1=pictureBox1.CreateGraphics();
n=2;
P1=new Point();
P2=new Point();
P3=new Point();
Random Rnd=new Random();
bx=0;
by=0;
for(x=80;x<=500;x=x+60)
for(y=60;y<=400;y=y+60)
{
rr=Rnd.NextDouble();
n=8-(int)(6*rr);
for(th=0;th<=2*pi;th=th+2*pi/n)
{
x0=x+(int)(20*Math.Sin(th));
y0=y-(int)(20*Math.Cos(th));
if(th==0)
{
bx=x0;
by=y0;
P1.X=bx;
P1.Y=by;
}
else
{
P2.X=x0;
P2.Y=y0;
gobject1.DrawLine(pen1,P1,P2);
P1=P2;
}
P3.X=bx;
P3.Y=by;
gobject1.DrawLine(pen1,P1,P3);
}
}
}
private void menuItem5_Click(object sender, System.EventArgs e)
{
float x=0,y=0;
int xmax=540,ymax=380,i,xmin=50,ymin=20;
int xw=(xmax-xmin),yw=(ymax-ymin);
Random ran=new Random();
Graphics g=pictureBox1.CreateGraphics();
Pen p1=new Pen(Color.Blue);
if(status==true)
{
g.Clear(pictureBox1.BackColor);
status=false;
}
for(i=1;i<50;i++)
{
x=ran.Next(xw);
y=ran.Next(yw);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -