Построение графиков полярных кривых в Visual Basic Г.В.Гибадулина, 2012 КОГОБУ СПО «Кировский педагогический колледж» Практикум по решению задач на ЭВМ
Понятие полярной системы A(r, f) r f 0 Полярная ось Полюс Полярный радиус r – отрезок, соединяющий полюс с заданной точкой А. Полярный угол f - угол между полярной осью и полярным радиусом. В полярной системе любой точке соответствует единственная пара полярных координат А(r, f), где r – полярный радиус, a – полярный угол. Полярная система координат образуется полярным полюсом О и полярной осью, проведённой из полюса в направлении слева направо. 1
Переход от полярной системы координат к декартовой A(x, y) r f 0 y x X Y Формулы обратного перехода от декартовых координат к полярным: x = r*cos f у = r*sin f Формулы перехода от полярных координат к декартовым (параметрические уравнения): f = arctg(y/x); Нужно совместить полярную и декартову прямоугольную сиcтемы таким образом, чтобы начала их координат совпадали, а полярная ось совпадала с положительным направлением оси абсцисс X. 2
Построение графиков полярных кривых в Visual Basic Задание Создать проект в среде Visual Basic для построения графиков полярных кривых, заданных параметрическими уравнениями: кардиоиды, логарифмической спирали, декартова листа, фигуры Лиссажу, k-лепестковой розы, эпициклоиды 3
Интерфейс проекта Frame1 Массив переключат елей Option1(i) Picture1 Text1 Label2 Command1 Label3 Label1 4
Свойства элементов управления Элемент управления СвойствоЗначение Frame1Caption Выбор типа полярной кривой Option1(0)Captionкардиоида Option1(1)Caption логарифмическая спираль Option1(2)Captionдекартов лист Option1(3)Captionk-лепестковая роза Option1(4)Captionфигура Лиссажу Option1(5)Captionэпициклоида Option1(5) Option1(0) 5
Свойства элементов управления Элемент управленияСвойствоЗначение Label3Caption Построение полярных кривых Label1CaptionГрафик Label1, Label2, Label3Alignment2 - center Text1Text Text1Alignment0 - left Picture1FillStyle 0 - solid Command1CaptionПуск 6
Описание переменных Dim z, k As Integer, f, pi, a, r, b, q As Single, i As Long, x, y As Single x, y – координаты точки r – радиус; f - угол Pi –число Пи a, b, q, k – коэффициенты в параметрических уравнениях z - индекс выбранного переключателя i – параметр цикла для задержки рисования на экране 7
Процедура выбора типа кривой Анализируем значение свойства Value каждого переключателя. Private Sub Option1_Click(Index As Integer) в переменной z запоминаем индекс выбранного переключателя For i = 0 To 5 If Option1(i).Value = True Then z = i Next End Sub 8
Процедура кнопки Пуск Private Sub Command1_Click() шкала Picture1.Scale (-10, 10)-(10, -10) оси координат Picture1.Line (-10, 0)-(10, 0), QBColor(0) Picture1.Line (0, -10)-(0, 10), QBColor(0) pi =
Кардиоида Параметрические уравнения r = a * (1 + Cos(f)) x = r * Cos(f) y = r * Sin(f) f [0, 2*pi] 10
Построение графика кардиоиды If z = 0 Then a = 4: q = 4: f = 0 While f
Построение графика кардиоиды Вывод параметрических уравнений в текстовое поле Text1.Text = Text1.Text & "r = a * (1 + Cos(f))" & Chr(13) & Chr(10) Text1.Text = Text1.Text & "x = r * Cos(f)" & Chr(13) & Chr(10) & "y = r * Sin(f)" End If End Sub 12
Процедура кнопки Сброс Private Sub Command3_Click() Picture1.Cls Picture1.Line (-10, 0)-(10, 0), QBColor(0) Picture1.Line (0, 10)-(0, -10), QBColor(0) Label2.Caption = "" Text1.Text = "" End Sub 13
Логарифмическая спираль Параметрические уравнения a = 0.2 b = 0.15 n = 5 r = a * Exp(b * f) x = r * Cos(f) y = r * Sin(f) f [0, 2*pi*n] 14
Декартов лист Параметрические уравнения a = 4 r = 3 * a * Cos(f) * Sin(f) / (Cos(f) ^ 3 + Sin(f) ^ 3) x = r * Cos(f) y = r * Sin(f) f [0, 2*pi] 15
Фигура Лиссажу Параметрические уравнения r = 5 x = r * Cos(3 * f) y = r * Sin(2 * f) f [-pi, pi] 16
K-лепестковая роза Параметрические уравнения При чётных значениях k получается 2*k- лепестковая роза, а при нечётных значениях – k-лепестковая роза. r = Sin(k * f) x = 10 * r * Cos(f) y = 10 * r * Sin(f) f [-pi, pi] 17
Эпициклоида Параметрические уравнения x = (a + b) * Cos(f) - a * Cos((a + b) * f / a) y = (a + b) * Sin(f) - a * Sin((a + b) * f / a) f [0, 2*pi] Значение b вводится с клавиатуры. Значение a примем равным a = b / 3. 18
1. Добавьте в проект кнопку Движение (Command4). Реализовать движение объекта (окружности) по траектории окружности радиуса R. Параметрические уравнения окружности x = r * Cos(f) y = r * Sin(f) f [0, 2*pi] R 19 Задания для самостоятельной работы
2. Добавьте в проект элемент управления ползунок Slider (Проект – Компоненты - Microsoft Windows Common Controls6), для регулировки скорости движения окружности, и кнопку Скорость (Command5). Установите свойство ползунка Min=1, Max=20. Commad5 Slider1 20
Задания для самостоятельной работы процедура кнопки Скорость Private Sub Command5_Click() v= Slider1.Value End Sub переменную v используйте в цикле для задержки рисования For i = 1 To *v : Next 21
Процедура кнопки Движение Открыть проект 22 Private Sub Command4_Click() 'движение pi = : r = 7 Picture1.Scale (-10, 10)-(10, -10) For f = 0 To 2 * pi Step 0.01 Picture1.FillColor = QBColor(4)цвет заливки x = r * Cos(f)параметрические уравнения окружности y = r * Sin(f) Picture1.Circle (x, y), 0.5, QBColor(4)рисуем окружность For i = 1 To * v: Nextзадержка рисования Picture1.FillColor = QBColor(15)цвет фона Picture1.Circle (x, y), 0.5, QBColor(15)стираем окружность цветом фона For i = 1 To * v: Next Next End Sub