vb.net画正弦波 绘制正弦波

大佬们~VisualStudio中vb.net如何画三角函数图像?VB系统的坐标原点在左上角,X轴的正方向是水平向右,而Y轴的正方向是垂直向下 。所以,要绘制三角函数的曲线,自己可以通过改变点坐标的方法来实现,当然 , VB.NET提供了相应的方法可以来实现坐标变换 , 也可以通过VB.Net的Graphics类提供的平移、旋转等转换来实现 。
下面是我通过自己变换实现的示例,提供参考;我的环境是VB.NET 2010
Imports System.Math
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'1,获得一个Graphics对象
Dim MyGraphics As Graphics
MyGraphics = PictureBox1.CreateGraphics
'2 , 定义一个Pen对象,用于绘制图形(轮廓线)
Dim MyPen As New Pen(Color.Black, 1)
'3,定义一个Brush对象,用于填充图形(如果需要填充的话)
Dim MyBrush As New SolidBrush(Color.Orange)
MyGraphics.DrawLine(MyPen, 0, 200, 700, 200)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'1 , 获得一个Graphics对象
Dim MyGraphics As Graphics
MyGraphics = PictureBox1.CreateGraphics
'2,定义一个Pen对象 , 用于绘制图形(轮廓线)
Dim MyPen As New Pen(Color.Black, 1)
'3,定义一个Brush对象,用于填充图形(如果需要填充的话)
Dim MyBrush As New SolidBrush(Color.Orange)
'声明横向和纵向比例变量
Dim Heng As Integer = 20
Dim Zong As Integer = 50
'先获得正弦值,保存到点坐标数组
Dim MyPoints(700) As Point
Dim i As Integer
For i = 0 To 700
MyPoints(i) = New Point(i * Heng, 200 + Sin(i) * Zong)
Next
'采用绘制光滑线连接点的方式绘制曲线
MyGraphics.DrawCurve(MyPen, MyPoints)
End Sub
End Class
显示的效果图:
VB.net绘图具体如何设置双缓冲VB.NET画图是不能设置双缓冲的vb.net画正弦波,双缓冲是指窗体,从来没说是针对控件 。
不用graphic.clear清理重画就不会闪烁 。你可以先把容器删了再重新建立一个再去画 。
简单举例vb.net画正弦波:
Graphics g;
Pen p;
Panel pl;
构造函数初始化vb.net画正弦波:
p=new Pen(Color.Red,2);
pl=panel1;
造成闪烁的画法:
g=pl.CreateGraphics();
g.Clear(SystemColor.ButtonFace);
//.....画新的
不会闪烁的办法:
this.Controls.ReMoveAt(panel1);
pl=new Panel();
pl.Name="panel1";
//....创建容器控件
this.Controls.Add(pl);
//继续画
VB正弦曲线怎么画?在写代码之前 , 我们需要知道标准的正弦函数(以下称为sin函数),最大值是1,最小值是-1 , 几个关键点是0,±n*π/2 , ±n*π,而且它是周期性的 , 我们不可能让VB真的无限画下去,只需要在可见的窗体上绘制就行了 。说sin的概念是为了确定坐标系,因为sin最大值也只有1,所以我们要放大它的值 , 以便显示最好的效果,如果不确定坐标系,可能画出来一条近似直线的波浪线 。
首先 , 在Form_Load的事件里面写好坐标系,如果自己逻辑好这步确实可以不做,但是不做的结果就是需要写代码的人自己考虑偏移量,所以定好坐标系之后,写的函数就简单直观许多了 。自定义坐标系的方法是:scale(x1,y1)-(x2,y2).
第二 , 开始写sin的函数,可以写在模块里面,也可以直接在窗体代码区写,写模块是为了以后调试方便,如果只是为了显示标准的sin函数,在窗体写也可以 。定义几个双精度付典型的变量y,x,函数关系是y=sin(x)

推荐阅读