А.Н. Павлов. Высокоуровневые методы информатики и программирования

 

5.1. Построение графиков функций

 

            Для создания экранных изображений графиков функций используются методы Scale – масштаб, Line – линия и Pset – поместить точку (дословно: поместить пятно Point Set). Метод Scale применяется к объектам класса Экранная форма (Form) и Графическое окно (PictureBox). Эти объекты имеют абсолютные координаты и выражаются (по умолчанию) в твиксах (один твикс равен 1/1440 логического дюйма). Логический дюйм это такое расстояние на экранной форме, которое при ее печати на принтере будет равным 1 дюйму. Само собой, трудно ориентироваться в таких единицах измерения, поэтому при установке масштабов координатных осей, удобнее все вычислять в сантиметрах или миллиметрах. Правила разметки координатных осей будут даны в следующем разделе, в данном случае просто следует просмотреть пример использования перечисленных выше методов для организации построения графика в окне приложения. На рисунке 5 показано окно проекта, в котором на переднем плане находится форма с названием «Построение графика», на которой находятся: Графическое окно с именем PF31, Окно метка с именем LF31, две командные кнопки с названиями «Построить график» и «Возврат», Окно метка с записью «K=» и Текстовое окно с именем TF31 для ввода значения коэффициента. Все перечисленные элементы управления должны работать в определенной последовательности, после того как к форме будет обращение из строки меню главной формы «График». Следовательно, необходимо сначала запустить форму, а затем приступить к работе с ней. В качестве учебного примера выбрана простейшая функция: Y = K * Sin (X), хотя можно выбрать и более сложную функцию, но при этом надо не забывать об ограничениях, которые следует закладывать при выборе масштаба чертежа. В предложенной модели, поставлены задачи: разработать программу для вычерчивания заданной функции в определенных пределах; вводить параметр К для исследования ее поведения; проводить контроль введенного значения. Результат запуска приложения с заданным коэффициентом К = 9, представлен на рис. 36. Для выхода из заданного приложения следует нажать на кнопку «Возврат». В том случае, когда необходимо провести сравнительный анализ, можно ввести новое значение коэффициента и снова нажать на кнопку «Построить график».

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 36. Окно с построенным графиком

           

В данном примере сначала на экране появляется надпись в объекте Label, а затем этот объект замещается рисунком (PictureBox), на котором строится график. Что бы скрыть текст, в программе свойству Visible для окна с текстом присваивается значение True, после чего появляется всплывающее диалоговое окно с вопросом.    Если не вызывать такое окно, то на окне PictureBox ничего не появится, это происходит потому, что уже невидимый текст заслоняет окно рисунка, и необходимо провести какое-нибудь действие. Этим действием и является появление диалогового окна. После закрытия диалогового окна PictureBox становится полностью видимым.

Программные коды для разработанного приложения представлены в следующем разделе с некоторыми комментариями автора. Движение линии построения графика по заданной функции осуществляется с помощью изменения координат точки, которая отображает в каждый момент времени значения координат, выбранной функции. Следует напомнить, что оси времени может и не существовать, поэтому никакой связи реального времени с происходящим процессом не существует. Временной интервал в данной программе имитируется шагом приращения координат функции, чем меньше приращение, тем медленнее будет движение линии на экране. Это не всегда удобно, так как скорость работы процессора компьютера влияет на скорость движения линии на экране, что требует подбирать величину приращения, поэтому правила работы с таймером были рассмотрены в предыдущем примере. Ниже приведен листинг с программными кодами для рассматриваемого примера.

 

Листинг программных кодов для построения графика.

 

Прямоугольная выноска: Переменная k является глобальной для всех процедур
 


Dim k As Variant

 

Прямоугольная выноска: При загрузке формы с отображением графика заданной функции, скрывается начальная форма, и окно для рисунка делается видимымPrivate Sub Form_Load()

  F1.Hide

  PF31.Visible = True

  k = 0

End Sub

Прямоугольная выноска: После нажатия на кнопку «Показать график», анализируется значение введенного коэффициента k
 


Private Sub CF31_Click()

   k = TF31.Text

If k = "" Then

   y = MsgBox("Вы не ввели значение коэффициента К", 16, "ВНИМАНИЕ !")

Else

   LF31.Visible = False

   y = MsgBox("Вы ввели К= " & k & "  ОСТАВИТЬ ?", 1, "ПРОВЕРИТЬ")

Прямоугольная выноска: После того, как принято решение о построении графика, устанавливаются масштаб осей и строятся сами оси   If y = 1 Then

      PF31.Scale (-35, 20)-(35, -20)

      PF31.Line (-32, 0)-(32, 0), QBColor(13)

      PF31.Line (0, -15)-(0, 15), QBColor(12)

    For x = -30 To 30 Step 5

      PF31.Line (x, -1)-(x, 1)

    Next x

Прямоугольная выноска: На осях наносятся метки через каждые 5 миллиметров.    For y = -15 To 15 Step 5

      PF31.Line (1, y)-(-1, y)

    Next y

Прямоугольная выноска: Осуществляется запуск построения графика с толщиной линии (точки) в 3 пиксела      For z = -30 To 30 Step 0.001

        PF31.DrawWidth = 3

        PF31.PSet (z, k * Sin(z)), vbBlue

       Next z

   End If

 End If

 TF31.SetFocus

End Sub

 

 

Прямоугольная выноска: Для выхода на главную форму, сначала закрывается форма с графиком, а потом выгружается из памяти, что позволяет восстановить все прежние значения.Private Sub CF32_Click()

  F3.Hide

  Unload F3

  F1.Show

End Sub

 

 

           

Hosted by uCoz