Построить график функции в picturebox с возможностью изменения значений - VB

Узнай цену своей работы

Формулировка задачи:

Помогите построить график функции(picturebox) . С возможностью изменения значений a, b, c, t (в поле textbox). Координаты x и y заданы определённой функцией. Не понимаю как сделать с помощью pset чтобы координаты x и y задавались функциями.

Решение задачи: «Построить график функции в picturebox с возможностью изменения значений»

textual
Листинг программы
  1. Sub Main()
  2.  
  3. Dim X(1 To 1000) As Double  ' массив для x
  4. Dim Y(1 To 1000) As Double  ' массив для y
  5.  
  6.     a# = [C2]  ' параметры кривой берем с
  7.    b# = [C3]  ' из соотв. ячеек
  8.    c# = [C4]  ' рабочего листа
  9.    
  10.     '::: Заполнение
  11.    
  12.     n% = 0
  13.    
  14.     For t# = -10 To 10 Step 0.1  ' цикл по t
  15.    
  16.         n% = n% + 1  ' номер точки
  17.    
  18.         X(n%) = a# * t# + b# * Sin(c# * t#)   ' очередной х
  19.        Y(n%) = a# - b# * Cos(c# * t#)         ' очередной y
  20.    
  21.     Next t#
  22.    
  23.     '::: Приведение к равномерной шкале
  24.    
  25.     xmin# = X(1)
  26.     xmax# = X(1)
  27.    
  28.     ' ищем минимум и максимум простым перебором
  29.    ' в одном цикле
  30.  
  31.     For i% = 2 To n%
  32.    
  33.         If X(i%) > xmax# Then xmax# = X(i%)
  34.         If X(i%) < xmin# Then xmin# = X(i%)
  35.    
  36.     Next i%
  37.    
  38.     dx# = (xmax# - xmin#) / 800  ' делим отрезок [xmin,xmax] на 800 точек
  39.    
  40.     j% = 0
  41.    
  42.     For xx# = xmin# To xmax# Step dx#
  43.  
  44.         ' переменная xx проходит от xmin до xmax с РАВНОМЕРНЫМ шагом
  45.    
  46.         For k% = 1 To n% - 1
  47.  
  48.              ' для очередной xx находим две соседние точки x[k] и x[k+1],
  49.             ' между которыми находится xx
  50.  
  51.             If X(k%) <= xx# And X(k% + 1) >= xx# Then
  52.  
  53.                ' kk - угловой коэффициент прямой, соединяющей
  54.               ' точки (x[k],y[k]) и (x[k+1],y[k+1])
  55.  
  56.                kk# = (Y(k% + 1) - Y(k%)) / (X(k% + 1) - X(k%))
  57.  
  58.                ' yy - значение, соответствующее точке xx
  59.  
  60.                yy# = Y(k%) + (xx# - X(k%)) * kk#
  61.  
  62.                ' заносим пару xx,yy на лист в область данных диаграммы
  63.  
  64.                j% = j% + 1
  65.                Cells(j%, 28).Value = xx#
  66.                Cells(j%, 29).Value = yy#
  67.  
  68.                Exit For  ' обработали точку - выход из цикла
  69.  
  70.  
  71.             End If
  72.  
  73.         Next k%
  74.        
  75.     Next xx#
  76.  
  77. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут