Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_1-2.docx
Скачиваний:
3
Добавлен:
06.11.2018
Размер:
757.66 Кб
Скачать

Малюнок

За допомогою методу DrawImage можна помістити на формі або елементі управління малюнок з файлу:

e.Graphics.DrawImage(Image.FromFile(«с:\закат.jpg»), x, у)

Регулювання кольору

Якщо вас не влаштовує жоден з системних кольорів, можна підібрати потрібний колір, використовуючи властивість FromArgb. Абревіатура Argb розшифровується як alpha, red (червоний), green (зелений), blue (блакитний). Перший параметр позначає прозорість (при нульовому значенні колір повністю прозорий, а при значенні 255 має найбільшу інтенсивність), останні три - кольори, які при змішуванні в потрібній пропорції дають практично будь-який потрібний відтінок, інтенсивність кожного кольору може вимірюватися в розмірі від 0 (найменша інтенсивність) до 255 (найбільша інтенсивність).

Розглянемо конкретний приклад:

Private Sub Form1_Paint(ByVal sender As Object, _

ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint

e.Graphics.FillRectangle(New SolidBrush(Color.FromArgb(255, 55, 155, 255)),New Rectangle(50, 50, 150, 150))

End Sub

Побудова графіків функцій

При створенні графіків доводиться враховувати деякі особливості тригонометричних обчислень на комп'ютері, а також способи визначення координат графічних зображень. Це радіанна міра і відповідність абсолютних величин аргументу функції розмірам малюнка в пікселях. Щоб все сказане стало зрозумілішим, пригадаємо що синуси і косинуси вимірюються в десятих і сотих долях одиниці, а це означає, що кількість пікселів, якими визначаються розміри об'єкту, також виражатиметься дуже малим числом. Малюнок, що має такі розміри просто неможливо розгледіти. Тому необхідне збільшення зображення відповідно до заданого масштабу.

Окрім того, необхідно пам'ятати, що початком відліку координат у вікні Windows є лівий верхній кут. При використанні цієї координатної системи буде видно лише частину графіка, яка визначається додатними значеннями абсциси і від’ємними значеннями ординати. Тому необхідно розташовувати графік нижче і правіше, тобто збільшувати значення горизонтальних і вертикальних координат.

Алгоритм побудови графіку полягає в створенні масиву точок, які визначають координати ліній. З великої кількості таких маленьких ліній складатиметься одна велика лінія, що є графіком. Потім ініціюємо цей масив за допомогою циклу.

На перший погляд, все це виглядає не дуже складно. Але насправді складнощів тут немало. Головна складність полягає в підборі співвідношення між значеннями функції, а також її аргументу і реальними значеннями величин вимірюваних в пікселях, по яких будується графік.

Наведемо приклад побудови графіка функції на проміжку (-2;2). Першим кроком є побудова осей координат. Розмістимо початок координат в центрі форми. Для цього потрібно знати ширину w і висоту h форми (визначаються за допомогою властивостей форми Size.Width та Size.Height). Далі будуємо осі координат за допомогою методу DrawLine:

g.DrawLine(New Pen(Color.Black, 3), w \ 2, 0, w \ 2, h)

g.DrawLine(New Pen(Color.Black, 3), 0, h \ 2, w, h \ 2)

Початок координат знаходиться в точці (w\2,h\2).

Далі потрібно побудувати одиничні відрізки на осях координат. Код для осі х виглядає так:

Dim x As Integer

Dim x1 As Integer

Dim x2 As Integer

x = 1

Do

x1 = w \ 2 + x * 30

x2 = w \ 2 - x * 30

g.DrawLine(New Pen(Color.Black, 1), x1, h \ 2 - 3, x1, h \ 2 + 3)

g.DrawLine(New Pen(Color.Black, 1), x2, h \ 2 - 3, x2, h \ 2 + 3)

x = x + 1

Loop While (x1 < w) Or (x2 > -w)

Аналогічно будуються одиничні відрізки на осі у.

Число 30 в коді означає, що одиничний відрізок задається довжиною 30 пікселів.

Осі побудовані, тепер переходимо до основної задачі – побудови графіка функції. Наступний код забезпечує поставлену задачу:

Static u As Integer = -2 'ліва межа x на графіку

Static v As Integer = 2 'права межа x на графіку

Dim m As Single

Dim p As Single

' переведення координат на графіку в систему координат форми

m = u * 30 + w \ 2 'ліва межа задана координатою на формі

p = v * 30 + w \ 2 'права межа задана координатою на формі

Dim x1, y1, yx, xx As Single

x1 = m

yx = u * u

y1 = h \ 2 - yx * 30

' (x1,y1) координати першої лівої точки графіка

Dim x2 As Single

Dim y2 As Single ' (x2, y2) наступна точка графіка

Do

x2 = x1 + 1

xx = (x2 - w \ 2) / 30 'проміжні дані для обчислення значення

yx = xx * xx 'функції у звичних нам координатах

y2 = h \ 2 - yx * 30

g.DrawLine(New Pen(Color.Red, 3), x1, y1, x2, y2)

x1 = x2

y1 = y2

Loop While x2 <= p

Ось так буде виглядати графік функції:

Варіанти індивідуальних завдань

Завдання №1. Створити новий проект. В процедурі Form1_Paint створити зображення із запропонованого варіанту. Зберегти даний проект у власній теці на сервері.

Варіант №1.

Варіант №3

Варіант №2.

Варіант №4

Варіант №5.

Завдання №2. Створити новий проект. Організувати виведення на формі графіка функції із вказаного варіанту. Виведення осей координат здійснити в процедурі Form_Paint, а виведення графіка в процедурі Button_Click. На формі розмістити текстові поля для вказування меж, на яких задано графік. При виведенні графіка врахувати ціну поділки М (кількість точок форми між сусідніми поділками на осях). Початок координат помістити в центрі форми. Форму вивести по-центру екрану.

Варіант №1.

, M=25.

Варіант №2.

, M=40.

Варіант №3.

, M=50.

Варіант №4.

, M=45.

Варіант №5.

, M=35.

Варіант №6.

, M=15.

Варіант №7.

, M=150.

Варіант №8.

, M=200.

Варіант №9.

, M=55.

Варіант №10.

, M=65.

Варіант №11.

, M=60.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]