# C#Windows窗体界面设计_02_绘制三角函数_多点作图法_全局变量思想

binzhouweichao@163.com

2013-10-14

1.给项目添加一个新类

2.设置全局变量

C#没有全局变量。

public static class GlobalVars

using System.Drawing;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;

namespace TriPaint_20131013
{
//修改这里
public static class GlobalVars
{
//类似于#define宏定义，设置三个常量
public const int POINTCNT = 50;//点数，POINTCNT <= XMAX - XMIN
public const int XMAX = 200;//X轴最大值，也就是2π对应的值
public const int XMIN = 0;//X轴最小值
public const double times = (XMAX - XMIN) / (2 * Math.PI - 0);//放大倍数
public const double xInterval = (XMAX - XMIN) / (POINTCNT - 1);//i增量对应的data.X增量

//类似于全局变量，可以重新赋值
private static Point[] data = new Point[POINTCNT];
public static Point[] Data
{
get { return data; }
set { data = value; }
}
}
}


GlobalVars.POINTCNT

Global.Data

3.数据处理

            for (int i = 0; i < GlobalVars.POINTCNT; i++)
{
GlobalVars.Data[i].X = (int)(i * GlobalVars.xInterval);//i对应的data.X
GlobalVars.Data[i].Y = (int)(GlobalVars.times * Math.Sin(GlobalVars.Data[i].X / GlobalVars.times));//sin函数求值
GlobalVars.Data[i].Y = (int)(GlobalVars.Data[i].Y + GlobalVars.times * 1);//Y轴向正向平移1，即1*times，令最高点（也就是3π/2对应的-1点）的值为0
}

4.对TriPaint.cs添加事件

5.绘图

        private void TriPaint_Load(object sender, EventArgs e)
{
Graphics g = this.CreateGraphics();//画板
this.Show();//显示
Pen p = new Pen(Color.Blue, 1);//画笔

g.DrawLines(p, GlobalVars.Data);//多点绘图，直线连接
}

TriPaint.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace TriPaint_20131013
{
public partial class TriPaint : Form
{

public TriPaint()
{
InitializeComponent();
//在这里添加代码
//对数据进行处理
for (int i = 0; i < GlobalVars.POINTCNT; i++)
{
GlobalVars.Data[i].X = (int)(i * GlobalVars.xInterval);//i对应的data.X
GlobalVars.Data[i].Y = (int)(GlobalVars.times * Math.Sin(GlobalVars.Data[i].X / GlobalVars.times));//sin函数求值
GlobalVars.Data[i].Y = (int)(GlobalVars.Data[i].Y + GlobalVars.times * 1);//Y轴向正向平移1，即1*times，令最高点（也就是3π/2对应的-1点）的值为0
}

}

private void TriPaint_Load(object sender, EventArgs e)
{
Graphics g = this.CreateGraphics();//画板
this.Show();//显示
Pen p = new Pen(Color.Blue, 1);//画笔

g.DrawLines(p, GlobalVars.Data);//多点绘图，直线连接
}
}
}

6.结果

#### C#Windows窗体界面设计_02_绘制三角函数_多点作图法

2013-10-14 16:22:52

#### C#Windows窗体界面设计_01_绘制三角函数_五点作图法

2013-10-13 17:03:21

#### C#Windows窗体界面设计_07_多窗体设计

2013-10-20 19:05:16

#### C#Windows窗体界面设计_01_绘制三角函数_附强制类型转换

2013-10-13 17:01:53

#### C#窗体设计经典案例（1-8讲）合集

2011年12月06日 5.26MB 下载

#### C#Windows窗体界面设计_04_添加PictureBox控件绘图

2013-10-16 20:44:05

#### C# 围棋盘的画法

2014-11-24 17:19:49

#### C# WindowForm窗体-菜单栏、状态栏设计--(学生管理系统项目)

2017-05-24 04:53:37

#### 学习C#1（窗体与界面设计）

2016-01-27 21:51:26

#### Matlab的GUI编程入门项目一：常用三角函数的绘制

2017-10-03 00:57:30