📄 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.PictureBox pictureBox1;
private System.Windows.Forms.MenuItem menuItem1;
private System.Windows.Forms.MenuItem menuItem2;
public Point p1=new Point();
public Point p2=new Point();
public Point p3=new Point();
public Point p4=new Point();
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;
private System.Windows.Forms.MenuItem menuItem11;
private System.Windows.Forms.MenuItem menuItem12;
private System.Windows.Forms.MenuItem menuItem13;
private System.Windows.Forms.MenuItem menuItem14;
private System.Windows.Forms.MenuItem menuItem15;
private System.Windows.Forms.MenuItem menuItem16;
private System.Windows.Forms.MenuItem menuItem17;
private System.Windows.Forms.MenuItem menuItem18;
private System.Windows.Forms.MenuItem menuItem19;
private System.Windows.Forms.MenuItem menuItem20;
private System.Windows.Forms.MenuItem menuItem21;
private System.Windows.Forms.MenuItem menuItem22;
private System.Windows.Forms.MenuItem menuItem23;
private System.Windows.Forms.MenuItem menuItem24;
private System.Windows.Forms.MenuItem menuItem25;
private System.Windows.Forms.MenuItem menuItem26;
private System.Windows.Forms.MenuItem menuItem27;
private System.Windows.Forms.MenuItem menuItem28;
private System.Windows.Forms.MenuItem menuItem29;
private System.Windows.Forms.MenuItem menuItem30;
/// <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.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.menuItem13 = new System.Windows.Forms.MenuItem();
this.menuItem14 = new System.Windows.Forms.MenuItem();
this.menuItem15 = new System.Windows.Forms.MenuItem();
this.menuItem11 = new System.Windows.Forms.MenuItem();
this.menuItem12 = new System.Windows.Forms.MenuItem();
this.menuItem16 = new System.Windows.Forms.MenuItem();
this.menuItem18 = new System.Windows.Forms.MenuItem();
this.menuItem19 = new System.Windows.Forms.MenuItem();
this.menuItem20 = new System.Windows.Forms.MenuItem();
this.menuItem21 = new System.Windows.Forms.MenuItem();
this.menuItem29 = new System.Windows.Forms.MenuItem();
this.menuItem30 = new System.Windows.Forms.MenuItem();
this.menuItem22 = new System.Windows.Forms.MenuItem();
this.menuItem17 = new System.Windows.Forms.MenuItem();
this.menuItem23 = new System.Windows.Forms.MenuItem();
this.menuItem24 = new System.Windows.Forms.MenuItem();
this.menuItem25 = new System.Windows.Forms.MenuItem();
this.menuItem26 = new System.Windows.Forms.MenuItem();
this.menuItem27 = new System.Windows.Forms.MenuItem();
this.menuItem28 = new System.Windows.Forms.MenuItem();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.SuspendLayout();
//
// mainMenu1
//
this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem1,
this.menuItem16,
this.menuItem17});
//
// menuItem1
//
this.menuItem1.Index = 0;
this.menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem2,
this.menuItem3,
this.menuItem4,
this.menuItem5,
this.menuItem6,
this.menuItem7,
this.menuItem8,
this.menuItem11,
this.menuItem12});
this.menuItem1.Text = "平面图形几何变换";
//
// menuItem2
//
this.menuItem2.Index = 0;
this.menuItem2.Text = "3阶函数曲线";
this.menuItem2.Click += new System.EventHandler(this.menuItem2_Click);
//
// menuItem3
//
this.menuItem3.Index = 1;
this.menuItem3.Text = "两个方向平移3阶函数";
this.menuItem3.Click += new System.EventHandler(this.menuItem3_Click);
//
// menuItem4
//
this.menuItem4.Index = 2;
this.menuItem4.Text = "两个方向平移5阶函数";
this.menuItem4.Click += new System.EventHandler(this.menuItem4_Click);
//
// menuItem5
//
this.menuItem5.Index = 3;
this.menuItem5.Text = "平移5阶函数";
this.menuItem5.Click += new System.EventHandler(this.menuItem5_Click);
//
// menuItem6
//
this.menuItem6.Index = 4;
this.menuItem6.Text = "花形平移图案";
this.menuItem6.Click += new System.EventHandler(this.menuItem6_Click);
//
// menuItem7
//
this.menuItem7.Index = 5;
this.menuItem7.Text = "比例变换";
this.menuItem7.Click += new System.EventHandler(this.menuItem7_Click);
//
// menuItem8
//
this.menuItem8.Index = 6;
this.menuItem8.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem9,
this.menuItem10});
this.menuItem8.Text = "旋转变换";
//
// menuItem9
//
this.menuItem9.Index = 0;
this.menuItem9.Text = "旋转3阶曲线";
this.menuItem9.Click += new System.EventHandler(this.menuItem9_Click);
//
// menuItem10
//
this.menuItem10.Index = 1;
this.menuItem10.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem13,
this.menuItem14,
this.menuItem15});
this.menuItem10.Text = "旋转小正方形";
//
// menuItem13
//
this.menuItem13.Index = 0;
this.menuItem13.Text = "旋转小正方形1";
this.menuItem13.Click += new System.EventHandler(this.menuItem13_Click);
//
// menuItem14
//
this.menuItem14.Index = 1;
this.menuItem14.Text = "旋转小正方形2";
this.menuItem14.Click += new System.EventHandler(this.menuItem14_Click);
//
// menuItem15
//
this.menuItem15.Index = 2;
this.menuItem15.Text = "旋转小正方形3";
this.menuItem15.Click += new System.EventHandler(this.menuItem15_Click);
//
// menuItem11
//
this.menuItem11.Index = 7;
this.menuItem11.Text = "对称变换";
this.menuItem11.Click += new System.EventHandler(this.menuItem11_Click);
//
// menuItem12
//
this.menuItem12.Index = 8;
this.menuItem12.Text = "组合变换";
this.menuItem12.Click += new System.EventHandler(this.menuItem12_Click);
//
// menuItem16
//
this.menuItem16.Index = 1;
this.menuItem16.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem18,
this.menuItem19,
this.menuItem20,
this.menuItem21,
this.menuItem22});
this.menuItem16.Text = "设计美术图案单元";
//
// menuItem18
//
this.menuItem18.Index = 0;
this.menuItem18.Text = "函数曲线选择";
this.menuItem18.Click += new System.EventHandler(this.menuItem18_Click);
//
// menuItem19
//
this.menuItem19.Index = 1;
this.menuItem19.Text = "函数曲线的镜像变换";
this.menuItem19.Click += new System.EventHandler(this.menuItem19_Click);
//
// menuItem20
//
this.menuItem20.Index = 2;
this.menuItem20.Text = "函数曲线图形旋转90度";
this.menuItem20.Click += new System.EventHandler(this.menuItem20_Click);
//
// menuItem21
//
this.menuItem21.Index = 3;
this.menuItem21.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem29,
this.menuItem30});
this.menuItem21.Text = "图案变形处理";
//
// menuItem29
//
this.menuItem29.Index = 0;
this.menuItem29.Text = "倾斜的图案处理";
this.menuItem29.Click += new System.EventHandler(this.menuItem29_Click);
//
// menuItem30
//
this.menuItem30.Index = 1;
this.menuItem30.Text = "旋转与倾斜处理";
this.menuItem30.Click += new System.EventHandler(this.menuItem30_Click);
//
// menuItem22
//
this.menuItem22.Index = 4;
this.menuItem22.Text = "任意花瓣";
this.menuItem22.Click += new System.EventHandler(this.menuItem22_Click);
//
// menuItem17
//
this.menuItem17.Index = 2;
this.menuItem17.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem23,
this.menuItem24,
this.menuItem25,
this.menuItem26,
this.menuItem27,
this.menuItem28});
this.menuItem17.Text = "变换矩阵设计图案";
//
// menuItem23
//
this.menuItem23.Index = 0;
this.menuItem23.Text = "平移变换";
this.menuItem23.Click += new System.EventHandler(this.menuItem23_Click);
//
// menuItem24
//
this.menuItem24.Index = 1;
this.menuItem24.Text = "旋转120度";
this.menuItem24.Click += new System.EventHandler(this.menuItem24_Click);
//
// menuItem25
//
this.menuItem25.Index = 2;
this.menuItem25.Text = "旋转变换";
this.menuItem25.Click += new System.EventHandler(this.menuItem25_Click);
//
// menuItem26
//
this.menuItem26.Index = 3;
this.menuItem26.Text = "沿椭圆旋转";
this.menuItem26.Click += new System.EventHandler(this.menuItem26_Click);
//
// menuItem27
//
this.menuItem27.Index = 4;
this.menuItem27.Text = "比例变换";
this.menuItem27.Click += new System.EventHandler(this.menuItem27_Click);
//
// menuItem28
//
this.menuItem28.Index = 5;
this.menuItem28.Text = "旋转比例平移";
this.menuItem28.Click += new System.EventHandler(this.menuItem28_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.Color.White;
this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.pictureBox1.Location = new System.Drawing.Point(8, 8);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(496, 376);
this.pictureBox1.TabIndex = 0;
this.pictureBox1.TabStop = false;
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(512, 389);
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)
{
Graphics g=pictureBox1.CreateGraphics();
Pen pen1=new Pen(Color.Blue);
g.Clear(pictureBox1.BackColor);
int px,py;
double a,x,y,x1,y1,x0;
x0=120;
x1=180;
y1=120;
a=y1/(x1*(x1-x0)*(x1+x0));
for(x=-180;x<=180;x+=2)
{
y=a*x*(x-x0)*(x+x0);
px=(int)(180+x/2);
py=(int)(160-y);
if(x==-180)
{
p1.X=px;
p1.Y=py;
}
else
{
p2.X=px;
p2.Y=py;
g.DrawLine(pen1,p1,p2);
p1=p2;
}
}
}
private void menuItem3_Click(object sender, System.EventArgs e)
{
//程序中的变量xx的for循环实现曲线的水平方向平移。
//程序中的变量yy的for循环实现曲线的垂直方向平移。
Graphics g=pictureBox1.CreateGraphics();
Pen pen1=new Pen(Color.Blue);
g.Clear(pictureBox1.BackColor);
int px,py,i;
double xx,yy,a,x,y,x1,y1,x0;
x0=120;
x1=180;
y1=120;
a=y1/(x1*(x1-x0)*(x1+x0));
i=1;
for(yy=-100;yy<=100;yy+=75)
{
i=i+1;
for(xx=-50;xx<=50;xx+=5)
{
for(x=-180;x<=180;x+=2)
{
y=a*x*(x-x0)*(x+x0);
px=(int)(180+x/2+xx/2);
py=(int)(200-y+yy);
if(x==-180)
{
p1.X=px;
p1.Y=py;
}
else
{
p2.X=px;
p2.Y=py;
g.DrawLine(pen1,p1,p2);
p1=p2;
}
}
}
}
}
private void menuItem4_Click(object sender, System.EventArgs e)
{
Graphics g=pictureBox1.CreateGraphics();
Pen pen1=new Pen(Color.Blue);
g.Clear(pictureBox1.BackColor);
int px,py,i;
double xx,yy,a,x,y,x1,y1,x0,x2;
x0=160;
x1=180;
y1=120;
x2=80;
a=y1/(x1*(x1-x0)*(x1+x0)*(x1-x2)*(x1+x2));
i=1;
for(yy=-50;yy<=50;yy+=100)
{
i=i+1;
for(xx=-30;xx<=30;xx+=5)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -