powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Задача функции для построение графика
7 сообщений из 7, страница 1 из 1
Задача функции для построение графика
    #37616532
Проблема такая.. Я написал программу для построения графика в visual basic, но чтобы построить график нужно вписать фунцию в код. Можно ли сделать так, чтобы функция вписывалась в inputbox или в texbox?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        graph1 = Me.PictureBox1.CreateGraphics
        graph1.Clear(Color.White)
        For Me.x = -500 To 500 Step 50
            graph1.DrawString(x / 50, drawfont, drawbrush, x + 500, 400)
        Next x
        For Me.y = -500 To 500 Step 50
            graph1.DrawString((y - 100) / 50, drawfont, drawbrush, 500, 500 - y)
        Next y
        graph1.ScaleTransform(1, -1)
        graph1.TranslateTransform(500, -420)

        graph1.DrawLine(pen1, -550, 0, 550, 0)
        graph1.DrawLine(pen1, 0, -500, 0, 500)
        For Me.x = -550 To 550 Step 50
            graph1.DrawLine(pen1, x, -5, x, 5)
        Next x
        For Me.y = -500 To 500 Step 50
            graph1.DrawLine(pen1, -5, y, 5, y)
        Next y


        For Me.x = -10 To 10 Step 0.001

            y =  'здесь я задаю график

            graph1.DrawEllipse(pen1, x * 50, y * 50, 1, 1)
        Next x
    End Sub



Побывал задать функцию так:
Код: sql
1.
2.
3.
4.
5.
6.
n = InputBox("введите степень уравнения")
        ReDim mas(0 To n)
        For Me.i = 0 To n Step 1
            mas(i) = InputBox("Введите" + Str(i) + "-й коэфицент")
            fc = fc + mas(i) * (x ^ i)
        Next i


но он разумеется не воспринимает ее...
Помогите, пожалуйста нужно для исследования!


Модератор: для оформления исходников используется тэг SRC, но никак не i
...
Рейтинг: 0 / 0
Задача функции для построение графика
    #37616554
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vbscript control + eval >>>google
...
Рейтинг: 0 / 0
Задача функции для построение графика
    #37617435
vasatka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторn = InputBox("введите степень уравнения")
ReDim mas(0 To n)
For Me.i = 0 To n Step 1
mas(i) = InputBox("Введите" + Str(i) + "-й коэфицент")
fc = fc + mas(i) * (x ^ i)
Next i

fc = fc + mas(i) * (x ^ i) , вместо fc нужно поставить "у", а значение " х" вообще не понятно откуда берётся.
Как выглядит функция изначально?
...
Рейтинг: 0 / 0
Задача функции для построение графика
    #37617640
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот пример, смотрите как это делается
...
Рейтинг: 0 / 0
Задача функции для построение графика
    #37617645
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для ленивых исходник формы:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
VERSION 5.00
Object = "{0E59F1D2-1FBE-11D0-8FF2-00A0D10038BC}#1.0#0"; "msscript.ocx"
Begin VB.Form Form1 
   Caption         =   "Form1"
   ClientHeight    =   6915
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   10335
   LinkTopic       =   "Form1"
   ScaleHeight     =   6915
   ScaleWidth      =   10335
   StartUpPosition =   3  'Windows Default
   Begin VB.TextBox Text2 
      Appearance      =   0  'Flat
      Height          =   330
      Left            =   7020
      TabIndex        =   5
      Text            =   "20"
      Top             =   45
      Width           =   1140
   End
   Begin VB.PictureBox Picture1 
      BackColor       =   &H8000000E&
      Height          =   6405
      Left            =   0
      ScaleHeight     =   6345
      ScaleWidth      =   10260
      TabIndex        =   2
      Top             =   495
      Width           =   10320
   End
   Begin VB.CommandButton Command1 
      Caption         =   "Plot"
      Height          =   375
      Left            =   4455
      TabIndex        =   1
      Top             =   45
      Width           =   1635
   End
   Begin VB.TextBox Text1 
      Appearance      =   0  'Flat
      Height          =   330
      Left            =   675
      TabIndex        =   0
      Text            =   "x^3-x/17+8"
      Top             =   45
      Width           =   3705
   End
   Begin MSScriptControlCtl.ScriptControl ScriptControl1 
      Left            =   135
      Top             =   2565
      _ExtentX        =   1005
      _ExtentY        =   1005
   End
   Begin VB.Label Label2 
      BackStyle       =   0  'Transparent
      Caption         =   "Качество:"
      Height          =   330
      Left            =   6165
      TabIndex        =   4
      Top             =   90
      Width           =   960
   End
   Begin VB.Label Label1 
      Alignment       =   1  'Right Justify
      BackStyle       =   0  'Transparent
      Caption         =   "Y="
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   204
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   240
      Left            =   135
      TabIndex        =   3
      Top             =   90
      Width           =   465
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
' Inputs:To plot a graph with this code, you'll need to input the graph equation
'     of te Y-X type. eg. X-5, X^2+3*X, etc. VB functions such as Exp(X) are also supported
'
' Returns:The main function returns values of Y relative to X from the equation.
'     This is then converted to co-ordinates and plotted using the LINE statement
'
'Side Effects:
'      Making the SpeedMark variable higher increases plotting quality but reduces plotting speed.
'      Setting it too high can make the program look as if it has hung. Set it between 20-150!
'      SpeedMark=(20-150)
'**************************************
Dim XMax As Single, YMax As Single, YMin As Single, XMin As Single, XScale As Single, YScale As Single
'

Public Sub DrawGraph _
    (GraphPaper As PictureBox, _
    ByVal GraphEquation As String, _
    ScriptCtrl As ScriptControl, _
    Optional ByVal SpeedMark As Integer = 20, _
    Optional ByVal GraphColor As Long = vbRed)

Dim X As Single
Dim Y As Single
Dim X1 As Single
Dim Y1 As Single
Dim X2 As Single
Dim Y2 As Single
Dim TempX As Single
Dim TempY As Single
Dim s As String
Dim iColor As Long

On Error GoTo Err_debug

    Screen.MousePointer = 11

    'Use these to change the size and scale of graph
    XScale = 10 'Scale in pixels per unit
    YScale = 1
    XMin = -200 'Minimum values
    YMin = -100
    XMax = 200 'Maximum value
    YMax = 100
    
    'These next lines fit the graph to the graph
    'area and lets you manually change the picture
    'box size without affecting the plotting
    With GraphPaper
        .ScaleHeight = YMax
        .ScaleWidth = XMax
        YMax = YMax + YMin / 2
        XMax = XMax + XMin / 2
    End With
    GraphPaper.Cls 'Clear all previous graphs
    
    'This part draws the two axes
    GraphPaper.Line (0, ConvertToYUnits(0))-(XMax - XMin, ConvertToYUnits(0))    'X-axis
    GraphPaper.Line (XMax, YMax - YMin)-(XMax, 0) 'Y-axis
    
    'This part is for plotting the graph
    For X = -SpeedMark To SpeedMark Step 1 / SpeedMark

        s = X
        s = VBA.Replace(s, ",", ".")
        s = "X = " & s
        With ScriptCtrl 'This part evaluates the y-values of the equation that will be used in plotting
            .ExecuteStatement (s)
            Y = .Eval(GraphEquation)
        End With
        
        'This is the main part which draws the entire graphs step-by-step by joining tiny lines together, based on the values from the equation
        On Error Resume Next
        If X <> -SpeedMark Then 'Error handling
            X1 = ConvertToXUnits(X)
            X2 = ConvertToXUnits(TempX)
            Y1 = ConvertToYUnits(Y)
            Y2 = ConvertToYUnits(TempY)
            GraphPaper.Line (X1, Y1)-(X2, Y2), GraphColor 'Make plotted line red
        End If
        On Error GoTo 0
        'These two TempX, TempY are used to set
        '     the next point for the line to continue
        'i.e. Line goes from 0,0 to 1,1. Then it
        '     goes from 1,1 to 2,2 etc
        TempX = X
        TempY = Y
    Next
    

lb_out:
    Screen.MousePointer = 0
    Exit Sub

Err_debug:
    MsgBox Err.Number & ": " & Err.Description, vbCritical
    Resume lb_out
    
End Sub

'These two functions convert equation values to values that can be plotted correctly on the picture control
Private Function ConvertToXUnits(ByVal ValueToChange As Single) As Single
    ConvertToXUnits = XMax + (ValueToChange * XScale)
End Function

Private Function ConvertToYUnits(ByVal ValueToChange As Single) As Single
    ConvertToYUnits = YMax - (ValueToChange * YScale)
End Function

Private Sub Command1_Click()
Dim i As Long

    i = CLng(0 & Me.Text2.Text)
    If i < 20 Or i > 150 Then
        i = 20
    End If
    Me.DrawGraph Me.Picture1, Me.Text1.Text, Me.ScriptControl1, i
    
End Sub

Private Sub Form_Resize()
On Error Resume Next
    If Me.WindowState = vbMinimized Then Exit Sub
    If Me.Height < 1500 Then Me.Height = 1500
    Me.Picture1.Move 0, Me.Picture1.Top, Me.ScaleWidth, Me.ScaleHeight
End Sub

...
Рейтинг: 0 / 0
Задача функции для построение графика
    #37617801
только у ТС - VB.Net
...
Рейтинг: 0 / 0
Задача функции для построение графика
    #37617815
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну так и что, пусть переводит
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Задача функции для построение графика
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]