首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > windows >

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

2013-10-14 
C#Windows窗体界面设计_01_绘制三角函数_五点作图法binzhouweichao@163.comVisual Stutio 2010 C#开发环境

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

binzhouweichao@163.com

Visual Stutio 2010 C#开发环境

五点作图绘制三角函数,以正弦函数为例,选取一个周期[0, 2π]上的五个特殊的点,也就是横坐标0, π/2, π, 3π/2, 2π这五个点绘制图形,对应的纵坐标为0, 1, 0, -1, 0。

1. 新建Windows窗体应用程序

文件-->新建-->项目,选择Windows窗体应用程序,项目位置和名称自定义。

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

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

2. 更改设计文件名称

在右侧解决方案资源管理器中,将默认的Form1.cs改为TriPaint.cs,在弹出的警示框中点击确定。

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

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

3.窗体属性设置

设置窗体显示的名称为TriPaint。

选中TriPaint.cs[设计]文件中的Form1窗体,右键-->属性,在右下角弹出的属性窗口中,找到Text属性,将其值修改为TriPaint。

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

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

可以看到,上方的Size属性为300, 300,即默认窗口大小为300*300。

这里的其他属性先不做修改。

4. 查看代码

在资源管理器中选中TriPaint.cs,右键-->查看代码。

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

5. 完善代码

出于简单考虑,只在TriPaint类的构造函数中进行,也就是public TriPaint()函数中添加其他代码。

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

5.1 建立五个点的数据

使用Point类型写入5个点的数据。Point是System.Drawing中的类,其基本的结构就是点坐标,包含X和Y两个数据。

声明点坐标数组:


设置一个放大倍数变量,方便计算:


即向正方向平移100/π。

注:由于Point中,坐标点为int类型,而sin函数或者π为double类型,所以不可避免的要强制类型转换,将double转换成int。而强制类型转换不可避免的会丢失小数点后面的数据。所以在计算sin()函数值时,最好不要使用data.X。但这里data.X的转换前的数据均为整数,与double转换时不会丢失数据,所以可以直接用。。

类型转换:http://blog.csdn.net/sduweichao/article/details/12677357

使用for循环赋值:

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();            //在这里添加代码            Point[] data = new Point[5];//声明一个Point数组data,共5个元素,每个元素为一个Point类型数据。            double times = 200 / 2 / Math.PI;//放大倍数            for (int i = 0; i < data.Length; i++)            {                data[i].X = (int)(i * Math.PI / 2 * times);//强制类型转换,将double转为int,可能会丢失数据                data[i].Y = (int)(times * Math.Sin(data[i].X / times) + times * 1);            }            Graphics g = this.CreateGraphics();//画板            this.Show();//显示            Pen p = new Pen(Color.Blue, 1);//画笔            g.DrawLines(p, data);//五点绘图,直线连接        }    }}

参考:

C#中的数学函数:http://blog.163.com/w_jingli/blog/static/3825536920114303635977/

C#绘图技术:http://wenku.baidu.com/view/9ffdce166edb6f1aff001fd1.html


热点排行