# 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_绘制三角函数_多点作图法_全局变量思想 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)