lushang2 2017-11-16 16:21 采纳率: 0%
浏览 910

ZedGraph程序运行不报错,但是控件里一片空白

Private Sub Form57_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    On Error Resume Next '这句话的意思是后面的程序如果在运行的时候出错,不管(下面一段话报错不管他)

    CATIA = GetObject(, "CATIA.Application") '用这个方式是默认我们开发者电脑里面就一个CATIA

    If Err.Number <> 0 Then '如果错误值不等于,明显运行过程有问题

        CATIA = CreateObject("CATIA.Application")

        CATIA.Visible = True

    End If

    On Error GoTo 0 '接下来的程序如果运行错误就立马报错,终止程序(接下来是逻辑运行,不是调用了,不能有错)


    Dim w1 As Double
    Dim w2 As Double
    Dim w3 As Double
    Dim L1 As Double
    Dim L2 As Double
    Dim L3 As Double
    Dim L4 As Double
    Dim d2 As Double
    Dim m As Double
    Dim f As Double
    Dim d As Double
    Dim C0 As Double

    w1 = Me.w1Text.Text
    w2 = Me.w2Text.Text
    w3 = Me.w3Text.Text
    L1 = Me.L1Text.Text
    L2 = Me.L2Text.Text
    L3 = Me.L3Text.Text
    L4 = Me.L4Text.Text
    d2 = Me.d2Text.Text
    d = Me.dText.Text
    C0 = Me.C0Text.Text
    m = Me.mText.Text
    f = Me.fText.Text

    Dim PI As Double

    PI = 3.141592653

    ZedGraphControl1.GraphPane.Title = "mufller sound attenuation"
    ZedGraphControl1.GraphPane.XAxis.Title = " 频率 f "
    ZedGraphControl1.GraphPane.YAxis.Title = "消声量 LNR "

    Dim list As New PointPairList()     '开始画图
    For f1 As Integer = 1 To 3000
        Dim k As Double = 2 * PI * f1 / C0
        Dim LNR1 As Double = 10 * Math.Log10((Math.Cos(L1 * k) ^ 2) / (Math.Cos((w1 + 2.5) * k) ^ 4) + 1 / 4 * ((m + 1 / m) ^ 2) * (Math.Sin(L1 * k) ^ 2) / (Math.Cos((w1 + 2.5) * k) ^ 4))
        Dim LNR2 As Double = 10 * Math.Log10((Math.Cos(L2 * k) ^ 2) / (Math.Cos((w2 + 2.5) * k) ^ 4) + 1 / 4 * ((m + 1 / m) ^ 2) * (Math.Sin(L2 * k) ^ 2) / (Math.Cos((w2 + 2.5) * k) ^ 4))
        Dim LNR3 As Double = 10 * Math.Log10((Math.Cos(L3 * k) ^ 2) / (Math.Cos((w3 + 2.5) * k) ^ 4) + 1 / 4 * ((m + 1 / m) ^ 2) * (Math.Sin(L3 * k) ^ 2) / (Math.Cos((w3 + 2.5) * k) ^ 4))
        Dim LNR4 As Double = 10 * Math.Log10((Math.Cos(L2 * k) ^ 2) + 1 / 4 * ((m + 1 / m) ^ 2) * (Math.Sin(L3 * k) ^ 2))
        Dim k4 As Double = (PI * f * L4 * (d2 ^ 2 - d ^ 2)) / (C0 * (d2 ^ 2))
        Dim z As Double = f1 / f
        Dim LNRG As Double = 10 * Math.Log10(1 + (k4 ^ 2) / ((z - 1 / z) ^ 2))
        Dim LNR As Double = 10 * Math.Log10(10 ^ (0.1 * LNR1) + 10 ^ (0.1 * LNR2) + 10 ^ (0.1 * LNR3) + 10 ^ (0.1 * LNR4) + 10 ^ (0.1 * LNRG))
        list.Add(f1, LNR)
    Next
    Dim myCurve As LineItem = ZedGraphControl1.GraphPane.AddCurve("Curve", list, Color.Black, SymbolType.None)
    ZedGraphControl1.AxisChange()


End Sub

    我在自己的这个程序里新建了一个窗体,运行
    Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

ZedGraphControl1.GraphPane.Title.Text = "mufller sound attenuation"
ZedGraphControl1.GraphPane.XAxis.Title.Text = " f Axis"
ZedGraphControl1.GraphPane.YAxis.Title.Text = "LRN Axis"

    Dim list As New PointPairList()
    For f As Integer = 1 To 3000
        Dim y As Double = Math.Pow(110, 2) * f * (1 - 0.058 * Math.Log(f)) / Math.Pow(Math.Pow(110, 2) + Math.Pow(f, 2), 1.5) * Math.Cos(f)
        list.Add(f, y)
    Next
    Dim myCurve As LineItem = ZedGraphControl1.GraphPane.AddCurve("Curve", list, Color.Black, SymbolType.None)
    ZedGraphControl1.AxisChange()

可以完美出图,求教各位大佬,到底是为什么我自己的就出不了。

  • 写回答

1条回答 默认 最新

  • lushang2 2017-11-17 12:24
    关注

    我试了半天,发现是Dim LNRG As Double = 10 * Math.Log10(1 + (k4 ^ 2) / ((z - 1 / z) ^ 2))这个函数式出不了图,其中k4,z都能出图,但是函数总体不能出图,控件里一片空白

    评论

报告相同问题?

悬赏问题

  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?