Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АСУ ЧС.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.6 Mб
Скачать

3. 14. Построение интерактивной карты зданий и сооружений

(Практическая работа №14)

Цели :

1. Закрепить теоретический материал

2. Приобрести практические навыки

Задания:

1. Нарисовать окружности и прямоугольники.

простые геометрические фигуры

Рис.3.33 «Пример»

Код программы:

'создание объектов для хранения изображения

Dim myBitmap As New Bitmap(500, 500)

Dim g As Graphics = Graphics.FromImage(myBitmap)

'рисование окружностей

g.FillEllipse(Brushes.Blue, -1000, -1000, 2000, 2000)

g.FillEllipse(Brushes.Green, -500, -500, 1000, 1000)

g.FillEllipse(Brushes.Yellow, -350, -350, 700, 700)

g.FillEllipse(Brushes.Orange, -200, -200, 400, 400)

g.FillEllipse(Brushes.Red, -100, -100, 200, 200)

'рисование квадратов

g.FillRectangle(Brushes.Brown, 100, 100, 10, 10)

g.FillRectangle(Brushes.Brown, 300, 500, 10, 10)

g.FillRectangle(Brushes.Brown, 450, 350, 10, 10)

g.FillRectangle(Brushes.Brown, 250, 400, 10, 10)

g.FillRectangle(Brushes.Brown, 150, 450, 10, 10)

'сохранение изображения и его передача на Windows форму

myBitmap.Save("Map.gif", Imaging.ImageFormat.Gif) 'в папку bin/Debug

PictureBox1.ImageLocation = "Map.gif"

3. 15. Создание прототипа гис

(Практическая работа №15)

Цели :

1. Закрепить теоретический материал

2. Приобрести практические навыки

Задания:

1 Создать прототип геоинформационной системы для анализа последствий взрывов.

2. Создать комбинированный список для 15 типов зданий и зоны ЧС для каждого типа.

Дополнить формой с легендой и сообщением со справочной информацией.

Код программы:

'создание объектов для хранения изображения

Dim myBitmap As New Bitmap(500, 500)

Dim g As Graphics = Graphics.FromImage(myBitmap)

Private Sub Button1_Click_1()

Dim M As Single, P() As Double = {20, 40, 70, 120}, R As Single, D As Single, i As Integer 'тип здания 10

Dim Col() As Brush = {Brushes.Green, Brushes.Yellow, Brushes.Orange, Brushes.Red}

M = Val(TextBox1.Text)

g.FillRectangle(Brushes.LightBlue, 0, 0, 500, 500)

For i = 0 To 3

R = Solution(P(i))

R = R * M ^ (1 / 3) 'расстояние до здания

D = 5 * 2 * R '5 - коэффициент масштабирования, 2R - диаметр окружности

g.FillEllipse(Col(i), -D / 2, -D / 2, D, D)

Next

'сохранение изображения и его передача на Windows форму

myBitmap.Save("Map.gif", Imaging.ImageFormat.Gif)

PictureBox1.ImageLocation = "Map.gif"

End Sub

Private Sub Button2_Click()

Dim X As Single, Y As Single

Do

X = Val(InputBox("Введите X-координату здания в диапазоне 0-100 м", "Ввод данных", "", vbQuestion))

Y = Val(InputBox("Введите Y-координату здания в диапазоне 0-100 м", "Ввод данных", "", vbQuestion))

g.FillRectangle(Brushes.Brown, 5 * X, 5 * Y, 10, 10)

Loop While MsgBox("Продолжить ввод данных?", MsgBoxStyle.YesNo, "Ввод данных") = MsgBoxResult.Yes

'сохранение изображения и его передача на Windows форму

myBitmap.Save("Map.gif", Imaging.ImageFormat.Gif) 'сохраняется в папке bin/Debug

PictureBox1.ImageLocation = "Map.gif"

End Sub

Код программы:

'процедура вывода легенды

Private Sub СправкаToolStripMenuItem1_Click()

Form2.Show()

End Sub

'процедура для вывода справочной информации

Private Sub PictureBox1_MouseDown()

Dim X As Single, Y As Single, D As Single

For i = 0 To ListBox1.Items.Count - 1

X = ListBox1.Items(i)

Y = ListBox2.Items(i)

D = Round(Sqrt(X ^ 2 + Y ^ 2), 2)

If e.X >= 5 * X And e.X <= 5 * X + 10 And e.Y >= 5 * Y And e.Y <= 5 * Y + 10 Then

MsgBox("Координаты объекта " & X & " : " & Y & Chr(13) & "Расстояние от эпицентра " & D, vbOKOnly, "Справочная информация")

End If

Next

End Sub

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