讲解.NET环境下绘制模糊数学中隶属函数分布图

 更新时间:2007年11月23日 17:13:15   作者:  

整个源代码如上。

  首先:重载 pictureBox1_Paint 函数 

  进行画图时思想很简单,确定起始位置,结束位置,本程序中我用System.Drawing.PointF对象存储点坐标。 

  使用 e.Graphics.DrawLine(Pens.Black, 坐标1, 坐标2)进行线条的绘制。 

 

  下面我将拿绘制正态分布图形介绍下: 

  程序段如下: 

以下是引用片段:
  for (d = a; d <= 2 * a; d += interval) 
  { 
  x1 = o.X + d * unit; 
  x2 = o.X + (d + interval) * unit; 
  y1 = o.Y - (float)(System.Math.Exp(-((d - a) / k) * ((d - a) / k)) * unit); 
  y2 = o.Y - (float)(1-System.Math.Exp(-((d - interval - a) / k) * ((d - interval - a) / k)) * unit); 

  p1 = new PointF(x1, y1); 
  p2 = new PointF(x2, y2); 
  e.Graphics.DrawLine(Pens.Blue, p1, p2); 
  } 


  其中:unit代表图形放大倍数,数值越大图形放大倍数越大。 

  interval 代表步进刻度,值越小越精确(必须大小0),但速度也越慢 

  先确定起始坐标(x1,y1),再结合正态分布在增加一个步进刻度的情况下确定(x2,y2),接下来调用e.Graphics.DrawLine进行画图。 

 

  最后还有一点,由于每次重新画图的时候都要调用private void pictureBox1_Paint(object sender, PaintEventArgs e),其不是用户定义方法,所以用户句柄重新获取PictureBox_Paint方法,重新绘制图形,代码段如下: 

以下是引用片段:
  Graphics g = Graphics.FromHwnd(this.pictureBox1.Handle); 
  PaintEventArgs e1 = new PaintEventArgs(g, this.pictureBox1.ClientRectangle); 
  this.pictureBox1_Paint(this.pictureBox1, e1); 
  g.Dispose(); 

相关文章

  • C#中static void Main(string[] args) 参数示例详解

    C#中static void Main(string[] args) 参数示例详解

    这篇文章主要介绍了C#中static void Main(string[] args) 参数详解,本文通过具体示例给大家介绍的非常详细,需要的朋友可以参考下
    2017-03-03
  • C#中字符串的一般性和特殊性

    C#中字符串的一般性和特殊性

    本篇文章主要介绍了C#中字符串的一般性和特殊性的相关知识,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • C#实现数字转换

    C#实现数字转换

    这篇文章主要为大家详细介绍了C#实现数字转换,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • C# 使用Microsoft Edge WebView2的相关总结

    C# 使用Microsoft Edge WebView2的相关总结

    这篇文章主要介绍了C# 使用Microsoft Edge WebView2的相关总结,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-02-02
  • 在C#中List集合使用First()方法获取第一个元素的操作

    在C#中List集合使用First()方法获取第一个元素的操作

    这篇文章主要介绍了在C#中List集合使用First()方法获取第一个元素的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • c# wpf如何使用Blend工具绘制Control样式

    c# wpf如何使用Blend工具绘制Control样式

    这篇文章主要介绍了c# wpf如何使用Blend工具绘制Control样式,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-03-03
  • C# 3DES加密详解

    C# 3DES加密详解

    3Des对每个数据块进行了三次的DES加密算法,是DES的一个更安全的变形。比起最初的DES,3DES更为安全。下面我们来看下在C#中的3DES加密方式的使用
    2015-06-06
  • C#实现将DataTable内容输出到Excel表格的方法

    C#实现将DataTable内容输出到Excel表格的方法

    这篇文章主要介绍了C#实现将DataTable内容输出到Excel表格的方法,较为详细的分析了C#基于DataTable保存Excel数据的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • C#并发编程入门教程之概述

    C#并发编程入门教程之概述

    这篇文章主要给大家介绍了关于C#并发编程之概述的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用c#具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • WinForm入门与基本控件使用详解

    WinForm入门与基本控件使用详解

    本文主要介绍了WinForm入门与基本控件使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06

最新评论