Отчёт по лабораторной работе №5 по курсу «Графический интерфейс интеллектуальных систем»




Скачать 33.09 Kb.
НазваниеОтчёт по лабораторной работе №5 по курсу «Графический интерфейс интеллектуальных систем»
Дата публикации16.03.2013
Размер33.09 Kb.
ТипОтчет
vbibl.ru > Информатика > Отчет
Министерство образования Республики Беларусь
Учреждение образования

«Белорусский государственный университет информатики
и радиоэлектроники»

Кафедра интеллектуальных

информационных технологий

Отчёт

по лабораторной работе № 5

по курсу «Графический интерфейс интеллектуальных систем»

Выполнили:

студенты группы 821701

Булова М.И.

Титенков П.В


Минск 2011
Цель:

Изучить алгоритмы заполнения замкнутых областей. Разработать редактор, позволяющий построение выпуклой области по множеству точек, а также позволяющий увидеть процесс заливки в пошаговом режиме.
^ Алгоритм заполнения с затравкой простым способом:
private boolean checkPoint(int x, int y){

for (Cell c : lines){

if (c.getX() == x && c.getY() == y){

return true;

}

}

for (Cell c : stack){

if (c.getX() == x && c.getY() == y){

stack.remove(c);

return false;

}

}

if (Math.abs(x * 2) > PaintScreen.X_SIZE - 2 || Math.abs(y * 2) > PaintScreen.Y_SIZE - 2){

return true;

}

return false;

}

/**

* Поиск следующей закрашиваемой точки.

* @param cells список закрашиваемых точек

*/

private void getNextPoint(ArrayList cells){

if (stack.isEmpty()){

cells = null;

return;

}

Color color = new Color(0, 0, 255, 100);

Cell c = stack.get(stack.size() - 1);

cells.add(c);

stack.remove(c);

lines.add(c);

if (!checkPoint(c.getX() + 1, c.getY())){

stack.add(new Cell(c.getX() + 1, c.getY(), color, "x + 1, y"));

}

if (!checkPoint(c.getX(), c.getY() + 1)){

stack.add(new Cell(c.getX(), c.getY() + 1, color, "x, y + 1"));

}

if (!checkPoint(c.getX() - 1, c.getY())){

stack.add(new Cell(c.getX() - 1, c.getY(), color, "x - 1, y"));

}

if (!checkPoint(c.getX(), c.getY() - 1)){

stack.add(new Cell(c.getX(), c.getY() - 1, color, "x, y - 1"));

}

}

^ Пример работы программы:

Алгоритм заполнения с затравкой построчным способом:
private boolean checkPoint(int x, int y) {

for (Cell c : lines) {

if (c.getX() == x && c.getY() == y) {

return true;

}

}

if (Math.abs(x * 2) > PaintScreen.X_SIZE - 2 || Math.abs(y * 2) > PaintScreen.Y_SIZE - 2) {

return true;

}

for (Cell cell : stack){

if (cell.getX() == x && cell.getY() == y){

stack.remove(cell);

return false;

}

}

return false;

}
private String flag = "";

/**

* Поиск следующей закрашиваемой точки.

* @param cells список закрашиваемых точек

*/

private void getNextPoint(ArrayList cells) {

Color color = new Color(0, 0, 255, 100);

if (!flag.equals(FILL_LINE_STATE)) {

if (stack.isEmpty()) {

cells = null;

return;

}

Cell c = stack.get(stack.size() - 1);

cells.add(c);

stack.remove(c);

lines.add(c);

flag = FILL_LINE_STATE;

xmin = c.getX();

xmax = c.getX();

y = c.getY();

} else {

if (!checkPoint(xmax + 1, (int) y)) {

cells.add(new Cell(xmax + 1, (int) y, color, "xmax + 1, y"));

lines.add(new Cell(xmax + 1, (int) y, color, "xmax + 1, y"));

xmax++;

} else if (!checkPoint(xmin - 1, (int) y)) {

cells.add(new Cell(xmin - 1, (int) y, color, "xmin - 1, y"));

lines.add(new Cell(xmin - 1, (int) y, color, "xmin - 1, y"));

xmin--;

} else {

for (int i = xmin; i <= xmax; i++) {

if (!checkPoint(i, (int) y + 1)){

stack.add(new Cell(i, (int) y + 1, color, "x, y + 1"));

// break;

}

}

for (int i = xmin; i <= xmax; i++) {

if (!checkPoint(i, (int) y - 1)){

stack.add(new Cell(i, (int) y - 1, color, "x, y - 1"));

// break;

}

}

flag = "";

getNextPoint(cells);

}

}

}


Пример работы программы:




Выводы:

В ходе лабораторной работы были изучены принципы построения параметрических кривых, изучены формы Эрмита, Безье и B-сплайна. Были реализованы матрицы и алгоритмы операций над ними.

Добавить документ в свой блог или на сайт

Похожие:

Отчёт по лабораторной работе №5 по курсу «Графический интерфейс интеллектуальных систем» iconОтчёт по лабораторной работе №6 по курсу «Графический интерфейс интеллектуальных систем»
Изучить алгоритмы построения параметрических кривых, использую форму Эрмита, Безье и b-сплайн. Реализовать графический редактор,...

Отчёт по лабораторной работе №5 по курсу «Графический интерфейс интеллектуальных систем» iconЛабораторной работы выбирается студентом самостоятельно, независимо...
Цель лабораторных работ состоит в закреплении и расширении теоретических знаний студентов и развитии навыков ведения самостоятельной...

Отчёт по лабораторной работе №5 по курсу «Графический интерфейс интеллектуальных систем» iconОтчет по лабораторной работе №2 по курсу «Моделирование систем» студент гр. 230661
Изучение объектно-ориентированного моделирования и исследование процесса построения диаграмм использования и диаграмм взаимодействий...

Отчёт по лабораторной работе №5 по курсу «Графический интерфейс интеллектуальных систем» iconРазработка технического задания на программный продукт Отчёт лабораторной...
Все нижеприведенные материалы будут изложены на основе гост 34. 602-89 (Информационная технология. Техническое задание на создание...

Отчёт по лабораторной работе №5 по курсу «Графический интерфейс интеллектуальных систем» iconОтчёт по лабораторной работе №2 по дисциплине «Моделирование систем»...
Цель лабораторной работы – разработка и исследование в среде компьютерной математической системы MatLab&Simulink моделей непрерывных...

Отчёт по лабораторной работе №5 по курсу «Графический интерфейс интеллектуальных систем» iconСистема пожарного мониторинга fsm-2000
Графический интерфейс пользователя для систем пожарной сигнализации малого и среднего размера. Возможность подключения

Отчёт по лабораторной работе №5 по курсу «Графический интерфейс интеллектуальных систем» iconОтчет о лабораторной работе должен содержать
Разработать экспертную систему, реализующую алгоритм обратной цепочки рассуждений на основе базы знаний, разработанной в лабораторной...

Отчёт по лабораторной работе №5 по курсу «Графический интерфейс интеллектуальных систем» iconЗадания по лабораторной работе №1 по курсу "Организация ЭВМ и систем"
Цель: изучение системы команд и способов адресации операндов процессора к 580, разработка алгоритма и программы на языке ассемблер...

Отчёт по лабораторной работе №5 по курсу «Графический интерфейс интеллектуальных систем» iconМетодические указания к лабораторной работе по дисциплине «Моделирование систем»
«Моделирование систем», «Моделирование в производственно-технологических системах»

Отчёт по лабораторной работе №5 по курсу «Графический интерфейс интеллектуальных систем» iconМетодические указания к лабораторной работе по курсу «Распределенные...
Получить знания о Java Servlet технологии, сервере Jakarta Tomcat, его настройке для работы с сервлетами

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
vbibl.ru
Главная страница