当前位置:编程学习 > VB >>

绘制函数图像

如何实现将输入的函数表达式读取到内部,并画出函数图像! 自己写方法完成吧,分别实现画线和画点等
举例,画线
Sub PLine(x1 As Long, y1 As Long, x2 As Long, y2 As Long, r As Long, g As Long, b As Long)
    Picture1.Line (x1, y1)-(x2, y2), RGB(r, g, b)
End Sub

Private Sub Command1_Click()
    Dim s As String, i As Long, ss() As String, ss2() As String
    s = Text1.Text
    ss = Split(s, ",")
    ss2 = Split(ss(0), " ")
    If ss2(0) = "Picture1.Line" Then
       PLine Val(ss2(1)), Val(ss(1)), Val(ss(2)), Val(ss(3)), Val(ss(4)), Val(ss(5)), Val(ss(6))
    End If
End Sub

Private Sub Form_Load()
    Picture1.Scale (-10, 25)-(10, -25)             '定义坐标系
    Text1.Text = "Picture1.Line -10,0,10,0,0,0,255"
End Sub
就是用文本框输入函数表达式,然后完成绘制图像! VB里没这功能,需要你自己编

引用 2 楼 qhhnghlj 的回复:
就是用文本框输入函数表达式,然后完成绘制图像!
[img=http://qun.qq.com/air/#33189279/impress/show/alid/1f1f1f1f-1111-1111-1111-1f1f1f1f/pd/94e413c2-4d53-96e8-941e-5ea5df579872/[11]/][/img]
这样的效果,这个难道不是用VB做的? 可以考虑使用BitBlt来实现。参考:

Option Explicit
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, _
                                             ByVal x As Long, _
                                             ByVal y As Long, _
                                             ByVal nWidth As Long, _
                                             ByVal nHeight As Long, _
                                             ByVal hSrcDC As Long, _
                                             ByVal xSrc As Long, _
                                             ByVal ySrc As Long, _
                                             ByVal dwRop As Long) As Long
                                             
Private Sub btnSaveGS_Click()
    Dim lngP As Long
    picGS.Cls
    lngP = BitBlt(picGS.hDC, 0, 0, picGS.ScaleWidth, picGS.ScaleHeight, Me.hDC, txtGS.Left, txtGS.Top, vbSrcCopy)
    picGS.Refresh
    SavePicture picGS.Image, "C:\GS.bmp"
End Sub

Private Sub Form_Load()
    With Me
        .ScaleMode = 3
    End With
    btnSaveGS.Caption = "保存公式"
    With txtGS
        .Text = "y=A*Sin(x)"
        .FontSize = 16
        .BorderStyle = 1
        .Appearance = 0
    End With
    With picGS
        .Appearance = 0
        .BorderStyle = 1
        .AutoRedraw = True
        .Width = txtGS.Width
        .Height = txtGS.Height
        .ScaleMode = 3
    End With
    
End Sub


引用 6 楼 jomakzhao 的回复:
直接用绘图控件吧,给你提供个双曲绘线控件。
http://www.vbhao.com/blog/2010/11/224/


..............
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,