Разработка программного обеспечения конфигурирования аппаратно-программного комплекса распределённой обработки видеообразов

Аналитический обзор видеосистем с элементами интеллектуальной обработки видеоконтента: FaceInspector, VideoInspector Xpress. Разработка алгоритма организации вычислительных средств комплекса, в структуру поэтапного решения задачи анализа видеообъекта.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 14.06.2012
Размер файла 3,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

В электроустановках Uпр>1000 В с током замыкания Jз<500 А допускается сопротивление заземления Rз? 250/ Jз , но не более 10 Ом.

Если заземляющее устройство используется одновременно для электроустановок напряжением до 1000 В и выше 1000 В, то Rз? 125/ Jз но не выше нормы электроустановки (4 или 10 Ом). В электроустановках с токами замыкания Jз> 500 A, Rз ? 0,5 Ом.

Расчет заземления сводится к определению числа заземлителей и длины соединительной полосы исходя из допустимого сопротивления заземления.

Таблица 7.1 - Исходные данные

Показатель

Значение

Вид заземления

выносное

Длина заземлителя l, м

2,7

Глубина заложения заземлителя в грунт h, м

0,65

Коэффициент сезонности Kc

2,0

Удельное сопротивление грунта с, Ом•м

70

Диаметр заземлителя d, м

55

Ширина соединительное полосы b, м

50

Допускаемое сопротивление системы заземления по ПУЭ RЭ.Н., Ом

4

В качестве заземлителя выбираем стальную трубу диаметром , а в качестве соединительного элемента - стальную полосу шириной .

Выбираем значение удельного сопротивления грунта соответствующее или близкое по значению удельному сопротивлению грунта в заданном районе размещения проектируемой установки.

Определяем значение электрического сопротивления растеканию тока в землю с одиночного заземлителя

где - удельное сопротивление грунта,

- коэффициент сезонности,

- длина заземлителя,

- диаметр заземлителя,

- расстояние от поверхности грунта до середины заземлителя.

Рассчитываем число заземлителей без учета взаимных помех, оказываемых заземлителями друг на друга, так называемого явления взаимного “экранирования”

? 10.

Рассчитываем число заземлителей с учетом коэффициента экранирования

? 18

где - коэффициент экранирования.

Принимаем расстояние между заземлителями

Определяем длину соединительной полосы

Рассчитываем полное значение сопротивления растеканию тока с соединительной полосы

Рассчитываем полное значение сопротивления системы заземления

где =0.51 - коэффициент экранирования полосы

7.2 Система видеонаблюдения в условиях ЧС

Данная система будет полезна в условиях чрезвычайных ситуаций для оценки положения и разрушений (если таковые имеются). Она же поможет избежать случаев мародёрства и иных противозаконных действий

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

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

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

Основные требования, выполнение которых ведет к повышению устойчивости функционирования объектов связи:

- снижение возможных потерь и разрушений от воздействия поражающих факторов, вызванных стихийными бедствиями, производственными авариями и военными действиями;

- создание оптимальных условий для восстановления разрушенных, поврежденных объектов в минимально короткие сроки;

- обеспечение безопасности жизнедеятельности людей.

Здания и сооружения. Оборудование, которое размещается внутри зданий и сооружений чаще всего выходит из строя из-за обломков, пожаров, а поэтому несущие конструкции зданий, сооружений необходимо изготавливать из легких, несгораемых материалов (сталь повышенной прочности, алюминиевые сплавы и т.д.). У каркасных зданий большой эффект достигается за счет применения облегченных конструкций стенового заполнения и увеличения световых проемов с использованием стекла, стеклоблоков, легких панелей из пластиков и других легко разрушаемых материалов. Эти материалы хорошо разрушаются ударной, сейсмической волной и этим уменьшается действие избыточного давления на каркас сооружения, а их обломки наносят меньший ущерб оборудованию. Целесообразно использовать легкие поворачивающиеся панели с шарнирным креплением. Такие панели под воздействием ударной волны поворачиваются, что снижает ее воздействие на несущие конструкции. Гаражи должны быть приспособлены для проведения дегазации и дезактивации техники.

Электроснабжение. Для повышения устойчивости электроснабжения объекта необходимо иметь дублирующие и аварийные источники электроснабжения, поэтому на объектах связи должно быть не менее двух вводов от независимых источников, обязательно с разных сторон, и подведение электроэнергии должно осуществляться подземным кабелем. Кроме того, объекты связи должны иметь свои автономные источники электропитания (аккумуляторные батареи, дизель-электрические станции и т.д.). включающиеся автоматически при выходе из строя основных источников питания.

Для повышения устойчивости функционирования сети необходимо предусматривать строительство дублирующих, обычно неработающих узлов, которые в случае выхода из строя основных узлов берут на себя их функции, также необходимо дублировать каналы, линии связи (кабельные линии - радиорелейными, и наоборот, кабельные линии - линиями радиосвязи и т. д., по которым одновременно может передаваться одна и та же информация).

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

- оконечная радиоэлектронная аппаратура должна иметь систему защиты от действия ЭМИ (амплитудные ограничители, быстродействующие разрядники, фильтры и т. д.);

- входные и выходные цепи радиопередающих и радиоприемных устройств должны иметь защиту от наводимых в антенных устройствах высоких напряжений (диодные амплитудные ограничители, газоразрядники, полосовые фильтры, экранированные фидерные линии и т. д.);

- кабели в аппаратных залах, кабинах должны прокладываться общим пучком (жгутом) в общем экране или экранированными проводами, что ослабляет наводки от электромагнитных полей.

Меры, повышающие радиационную стойкость РЭА. Наиболее эффективной мерой защиты от воздействия ионизирующих излучений является размещение аппаратуры в защитных или специально приспособленных сооружениях с большим коэффициентом ослабления Косл.

Кроме того, в современной аппаратуре связи необходимо использовать радиационно-стойкие элементы и схемы, некритичные или малокритичные к появлению дополнительных токов, возникающих в результате ионизации элементов схем РЭА, применять экранирование аппаратуры и ее элементов.

ЗАКЛЮЧЕНИЕ

В выполненной выпускной квалификационной работе проведено исследование аппаратно-программных средств анализа видеообъектов и осуществлен их выбор из номенклатуры DSSL для организации адаптивного децентрализованного комплекса визуального определения объектов и их перемещений с функциями автономной интеллектуальной обработки изображений.

Созданную программу можно интегрировать к существующим сегодня системам видеоконтроля для наиболее оптимального их использования и увеличения быстродействия по передаче данных, а так же снижения нагрузки с сетей.

Рассмотрены методы и приведены алгоритмы поэтапной обработки изображений для опознавания объектов и их перемещений, а также осуществлен выбор поддерживаемых системой TRASSIR устройств с интеллектуальными функциями реализации соответствующих этапов анализа.

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

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Официальный сайт компании DSSL. - Режим доступа: www.dssl.ru

2. Буков В.Н. Вложение систем. Аналитический подход к анализу и синтезу матричных систем / В.Н. Буков. - Издательство научной литературы Н.Ф. Бочкаревой, 2006.- 800 с.

3. Инженерно-техническая укрепленность. Технические средства охраны. Требования и нормы проектирования (РД 78.36.003-2002). - М., 2002.- 433с. - Режим доступа: http://www.complexdoc.ru

4. Системы технического зрения / А.Н. Писаревский, А.Ф. Чернявский, Г.К. Афанасьев [и др.]; под ред. А.Н. Писаревский. - СПб.: Машиностроение, 2008.- 424 с. - Режим доступа: http://lib2.narod.ru/

5. Очин Е.Ф. Вычислительные системы обработки изображений / Е.Ф. Очин. - СПб.: Энергоатомиздат, 2009.- 136 с.

6. Мороз В.А. Трансформирование снимков / В.А. Мороз, Л.И. Яблонский. - М.: Недра, 1991.-244 с. - Режим доступа: http://books.google.ru

7. Терехов C.A. Нейронные сети и их приложения / С.А. Терехов. - М.: alife, 2006.-49 с. - Режим доступа: http://alife.narod.ru

8. Старовойтов В.В. Модель Распознавание человека по изображению объектов и нейросетевые методы / В.В. Старовойтов. - М.: neuroface, 2007.- 342с.

9. Котов И.И. Алгоритмы машинной графики / И.И. Котов, B.C. Полозов, Л.В. Широкова. - М.: Машиностроение, 2007.- 231 с. - Режим доступа: www. padabum.com

10. Гриб С.М. Модель мышления / С.М. Гриб. - М.: neural, 2003.- 175с.

11. Официальный сайт компании ISS. - Режим доступа: www.iss.ru

12. Скороходов А.П. «Face-Интеллект» - идентификация личности по изображению / А.П. Скороходов. - М.: ITV, 2006.- 75 с. - Режим доступа: http://www.itv.ru

13. Маклаков С.В. BPWin и ERWin. CASE-средства разработки информационных систем. / С.В. Маклаков - М.: Диалог МИФИ, 1999. - 255с.

14. Справочник по СКУД. - Режим доступа: www.kardmaster.ru

15. Справочник по энергобезопасности. - Режим доступа: www.sio.su.

16. Инструкция по охране труда для операторов ПК - Режим доступа: www.sewer.3dn.ru.

17. Маньков В.Д. Защитное заземление и зануление электроустановок: Справочник. / В.Д. Мньков, С.Ф. Заграничный. - СПб.: Политехника, 2005.- 266с.

ПРИЛОЖЕНИЕ A

Алгоритмы модулей распознавания объектов

А.1 Алгоритм модуля выделения объектов

Модуль выделения объектов - первый модуль, который должен выполняться при начале работы комплекса. Его блок-схема представлена на рис А.1.

Сначала перехватывается опорный кадр (первый кадр в видеопотоке), на котором отсутствуют появившиеся объекты. Их изображение преобразуется в полутоновое по следующему алгоритму: цветность изображения каждой точки отражают значения RGB. С помощью функций getrvalue, getbvalue и getgvalue для каждой точки изображения определяются красная (red), синяя (blue) и зеленая (green) составляющая соответственно, находится среднее значение этих трех величин и значение каждой цветовой составляющей изменяется на полученное среднее.

Преобразование изображения в полутоновое необходимо для более точного выделения объекта и для минимизации проявления возможных помех. Через определенный промежуток времени t по таймеру перехватывается второй кадр, который так же преобразуется в полутоновое изображение. Полутоновое изображение характеризуется одной компонентой на каждый пиксель изображения, отражающей градации серого цвета. Значение компоненты каждой точки полученного кадра сравниваются со значением компоненты соответствующей точки на опорном кадре. Если значения совпадают или отличаются совсем незначительно, то точка с данными координатами закрашивается белым, иначе точка остается неизменной. Для более точного выделения объектов на кадре после сравнения с опорным изображение необходимо очистить от шумов, т.е. отдельно расположенных точек. Эти точки так же закрашиваются белым. Процедура выделения объектов связана с обработкой большого объема данных, поэтому данная процедура выполняется четырьмя параллельно запущенными процессами для того чтобы гарантировать выполнение операций в реальном времени без задержки вывода информации о появившемся объекте, как показывает блок-схема на рисунке А.1.

Рисунок А.1 - Блок-схема функционирования модуля выделения объектов

А.2 Алгоритм модуля выделения контура объектов

Существует несколько разновидностей алгоритмов выделения контураобъектов на изображении: отслеживающие и сканирующие.

Отслеживающие алгоритмы основаны на том, что на изображении отыскивается объект и контур объектов отслеживается и векторизуется. Достоинством данных алгоритмов является их простота, к недостаткам можно отнести их последовательную реализацию и некоторую сложность при поиске и обработке внутренних контуров. Пример отслеживающего алгоритма - «алгоритма жука», который начинает движение с пустой области по направлению к изображению, как только он попадает на его элемент, он поворачивает налево и переходит к следующему элементу. Если этот элемент пуст, то поворачивает направо, иначе - налево. Процедура повторяется до тех пор, пока не вернется в исходную точку. Координаты точек перехода с изображения и на изображение и описывают границу объекта. Сканирующие алгоритмы основаны на просмотре (сканировании) всего изображения и выделения контурных точек без отслеживания контура объекта.

А.З Алгоритм модуля выделения контура.

Его можно отнести к классу сканирующих алгоритмов, так как происходит сканирование всего изображения. Программа анализирует изображение по точкам. Выбираются только точки, которые удовлетворяют условию: справа или слева имеется белая точка, или сверху или снизу имеется белая точка.

Координаты записываются в линейные массивы «KontX» и «KontY». В массив «KontX» записывается координата по оси X, в массив «KontY» координата по Y. По значениям, хранящимся в этих массивах, рассчитываются геометрические признаки распознаваемого объектов, а по координатам формируется контур объектов. Данный алгоритм представлен на рисунке А.2.

Рисунок А.2 - Блок-схема модуля выделения контуров объектов

А.4 Алгоритм модуля выделения элементов объектов

Для распознавания объектов необходимо выделить его элементы, что является одной из сложных задач, которые решает комплекс.

Выделение элементов объектов происходит по алгоритму, в котором изображение сканируется по строкам, в каждой строке выделяются отрезки, по цвету отличные от белого; если точка не белая, а слева точка белая, то эта точка является началом отрезка, её координаты записываются в линейные массивы х1 и yl; если точка не белая и точка справа белая, то эта точка является концом отрезка, её координаты записываются в линейные массивы х2 и у2; для каждого найденного отрезка находятся координаты его середины; точки с координатами середин отрезков образуют элементы объектов. Данный алгоритм, на рисунке А.3 позволяет выделить так называемые средние линии частей элементов объектов, что является достаточным для расчетов, производимых системой.

Рисунок А.З - Блок-схема модуля выделения элементов объектов

А.5 Алгоритм модуля варианта распознавания объектов

В процессе работы программы измеряются абсолютные характеристики объекта: высота; ширина; площадь; периметр.

На основе абсолютных характеристик рассчитываются относительные признаки, которые, в отличие от абсолютных, являются инвариантными по отношению к изменениям масштаба и угла поворота объектов: отношение ширины объектов к его высоте, отношение квадрата периметра объектов к его площади, отношение расстояний между элементами объектов.

После обучения система может функционировать в режиме распознавания.

Для вычисления характеристик объектов анализируются линейные массивы, в которых записаны координаты контура объектов и их элементы. Высота объектов находится как разность максимального и минимального значений, найденных по массиву «KontY», который содержит ординаты точек контура объектов. Ширина вычисляется как разность максимального и минимального значений, найденных по массиву «KontX», который содержит абсциссы точек контура объектов. Периметр объектов как количество точек в их контуре рассчитывается по массиву KontX как количество элементов в массиве. Площадь объектов равна числу точек, которое занимает объект на изображении. Расстояние между элементами объектов рассматривается как количество точек между ними. После нахождения всех геометрических признаков объектов они сравниваются с эталонными значениями соответствующих признаков. Если из рассчитанных признаков большее количество совпадает с эталонными, то принимается решение о том, что объект относится к соответствующему классу.

Рисунок А.4 - Блок-схема функционирования модуля распознавания объектов.

ПРИЛОЖЕНИЕ Б

Б.1 Листинг программы поиска кратчайшего пути по алгоритму Беллмана-Форда

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

Buttons, ExtCtrls, StdCtrls, XPMan, Menus;

type

TForm1 = class(TForm)

SpeedButton1: TSpeedButton;

SpeedButton2: TSpeedButton;

SpeedButton3: TSpeedButton;

SpeedButton4: TSpeedButton;

SpeedButton5: TSpeedButton;

SpeedButton6: TSpeedButton;

Memo1: TMemo;

Label1: TLabel;

Label3: TLabel;

Edit2: TEdit;

Edit3: TEdit;

Label4: TLabel;

XPManifest1: TXPManifest;

Image: TImage;

Label5: TLabel;

SpeedButton7: TSpeedButton;

procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

procedure SpeedButton1Click(Sender: TObject);

procedure ImageMouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure ImageMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

procedure ImageMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure SpeedButton2Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure SpeedButton3Click(Sender: TObject);

procedure SpeedButton4Click(Sender: TObject);

procedure SpeedButton5Click(Sender: TObject);

procedure SpeedButton6Click(Sender: TObject);

procedure Quitter1Click(Sender: TObject);

procedure APropos2Click(Sender: TObject);

procedure FormCenter;

procedure SpeedButton7Click(Sender: TObject);

private

Drawing: Boolean;

Origin, MovePt: TPoint;

DrawingTool: byte;

{Private declarations}

public

procedure DrawShape(TopLeft, BottomRight: TPoint; AMode: TPenMode);

{Public declarations}

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

uses disktrat, Unit2;

const max = 30;

type Vertek = record

posx,posy: Integer;

end;

AVertek = Array [1..max] of Vertek;

var count: byte;

awal,akhir: byte;

Node: AVertek;

bool_awal,bool_akhir: Boolean;

node1,node2: byte;

Data: TJarak;

Closed: TPath;

procedure TForm1.DrawShape(TopLeft, BottomRight: TPoint; AMode: TPenMode);

begin

with Image.Canvas do

begin

Pen.Mode:= AMode;

case DrawingTool of

2: {LINE}

begin

Image.Canvas.MoveTo(TopLeft.X, TopLeft.Y);

Image.Canvas.LineTo(BottomRight.X, BottomRight.Y);

end;

end;

end;

end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

begin

if Drawing then

begin

DrawShape(Origin, MovePt, pmNotXor);

MovePt:= Point(X, Y);

DrawShape(Origin, MovePt, pmNotXor);

end;

end;

procedure TForm1.SpeedButton1Click(Sender: TObject);

begin

Drawingtool:= 1;

Image.Canvas.Pen.Mode:= pmcopy;

end;

procedure TForm1.ImageMouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

var XX,YY,i: byte;

begin

if Drawing then

begin

DrawShape(Origin, MovePt, pmNotXor); //afficher;

if drawingtool=2 then

begin

bool_akhir:= False;

for i:= 1 to count do

if (X>Node[i].posX-10) and (Y>Node[i].posY-10) and (X<Node[i].posX+10) and (Y<Node[i].posY+10) then

begin

bool_akhir:= True;

node2:= i;

break;

end;

if (node1<>0) and (node2<>0) and bool_awal and bool_akhir then

begin

DrawShape(Point(Node[node1].posx,Node[node1].posy), Point(Node[node2].posx,Node[node2].posy), pmCopy);

Data[node1,node2]:=round(sqrt(sqr(abs(Node[node2].posy-Node[node1].posy)/9) + sqr(abs(Node[node2].posx-Node[node1].posx)/9)));

Data[node2,node1]:= Data[node1,node2];

XX:= Node[node1].posx;

YY:= Node[node1].posy;

XX:= Node[node2].posx;

YY:= Node[node2].posy;

end;

end; //if

Drawing:= False;

if drawingtool=1 then

begin

count:= count + 1;

with Node[count] do

begin

posx:= x;

posy:= y;

end;

with Image.Canvas do

begin

Image.Canvas.Pen.Mode:= pmcopy;

Ellipse(X-15,Y-15,X+15,Y+15);

if count div 10 > 0 then

Textout(x-12,y-6,'R'+IntToStr(count))

else

Textout(x-5,y-6,'R'+IntToStr(count));

end;

end;

end;

end;

procedure TForm1.ImageMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

begin

if Drawing then

begin

DrawShape(Origin, MovePt, pmNotXor);

MovePt:= Point(X, Y);

DrawShape(Origin, MovePt, pmNotXor);

end;

end;

procedure TForm1.ImageMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

var i: byte;

begin

Drawing:= True;

Image.Canvas.MoveTo(X, Y);

Origin:= Point(X, Y);

MovePt:= Origin;

if drawingtool=2 then

begin

bool_awal:= False;

for i:= 1 to count do

if (X>Node[i].posX-10) and (Y>Node[i].posY-10) and (X<Node[i].posX+10) and (Y<Node[i].posY+10) then

begin

bool_awal:= True;

node1:= i;

break;

end;

end

else

if drawingtool in [3,4] then

begin

for i:= 1 to count do

if (X>Node[i].posX-10) and (Y>Node[i].posY-10) and (X<Node[i].posX+10) and (Y<Node[i].posY+10) then

begin

case drawingtool of

3: begin

awal:= i;

edit2.Text:= IntToStr(i);

end;

4: begin

akhir:= i;

edit3.Text:= IntToStr(i);

end;

end; //case

break;

end; //if

end;

end;

procedure TForm1.SpeedButton2Click(Sender: TObject);

begin

Drawingtool:= 2;

end;

procedure TForm1.FormCreate(Sender: TObject);

var

Bitmap: TBitmap;

xx,yy: byte;

begin

Form1.Left:= Screen.Width div 2 - Width div 2;

Form1.Top:= Screen.Height div 2 - Height div 2;

{ Application de la fonction: AnimateWindow }

AnimateWindow(Handle, 500{Vitesse}, AW_CENTER);

Show;

DoubleBuffered:= True;

Bitmap:= nil;

try

Bitmap:= TBitmap.Create;

Bitmap.Width:= 350;

Bitmap.Height:= 300;

Image.Picture.Graphic:= Bitmap;

finally

Bitmap.Free;

end;

Memo1.Clear;

Drawingtool:= 1;

count:= 0;

awal:= 0;

akhir:= 0;

edit2.Text:= '';

edit3.Text:= '';

for xx:= 1 to max do

for yy:= 1 to max do

begin

if xx=yy then

Data[xx,yy]:= 0

else

Data[xx,yy]:= 999;

end;

end;

procedure TForm1.SpeedButton3Click(Sender: TObject);

begin

Drawingtool:= 3;

end;

procedure TForm1.SpeedButton4Click(Sender: TObject);

begin

Drawingtool:= 4;

end;

procedure TForm1.SpeedButton5Click(Sender: TObject);

var i: byte;

XX,YY: byte;

begin

memo1.Clear;

Drawingtool:= 2;

RuteTerpendek(Data,Closed,awal,akhir,count);

if (awal<>0) and (akhir<>0) and (closed.jarak<>0) and (closed.jarak<>999) then

begin

Drawing:= True;

for i:= 1 to closed.nodeke-1 do

begin

memo1.Text:= memo1.Text + IntToStr(closed.arraypath[i]) + '-';

image.Canvas.Pen.Color:= clred;

DrawShape(Point(Node[closed.arraypath[i]].posx,Node[closed.arraypath[i]].posy), Point(Node[closed.arraypath[i+1]].posx,Node[closed.arraypath[i+1]].posy), pmCopy);

XX:= Node[closed.arraypath[i]].posx;

YY:= Node[closed.arraypath[i]].posy;

with Image.Canvas do

begin

Image.Canvas.Pen.Mode:= pmcopy;

Ellipse(XX-15,YY-15,XX+15,YY+15);

if node2 div 10 > 0 then

Textout(xX-12,Yy-6,'R'+IntToStr(closed.arraypath[i]))

else

Textout(Xx-5,Yy-6,'R'+IntToStr(closed.arraypath[i]));

end;

end;

XX:= Node[closed.arraypath[closed.nodeke]].posx;

YY:= Node[closed.arraypath[closed.nodeke]].posy;

with Image.Canvas do

begin

Image.Canvas.Pen.Mode:= pmcopy;

Ellipse(XX-15,YY-15,XX+15,YY+15);

if closed.nodeke div 10 > 0 then

Textout(xX-12,Yy-6,'R'+IntToStr(closed.arraypath[closed.nodeke]))

else

Textout(Xx-5,Yy-6,'R'+IntToStr(closed.arraypath[closed.nodeke]));

end;

image.Canvas.Pen.Color:= clblack;

memo1.Text:= memo1.Text + IntToStr(closed.arraypath[closed.nodeke]);

Drawing:= False;

end

else

begin

memo1.Text:= 'iln''ya pas de connections';

end;

Drawingtool:= 5;

end;

procedure TForm1.SpeedButton6Click(Sender: TObject);

begin

Drawingtool:= 6;

FormCreate(Sender);

SpeedButton1Click(Sender);

//edit1.Clear;

end;

procedure TForm1.Quitter1Click(Sender: TObject);

begin

Close;

end;

procedure TForm1.FormCenter;

begin

with Form2 do begin

Left:= Screen.Width div 2 - Width div 2;

Top:= Screen.Height div 2 - Height div 2;

end;

end;

procedure TForm1.APropos2Click(Sender: TObject);

begin

with Form2 do begin

Form2:= TForm2.Create(Application);

{Centre la fiche}

FormCenter;

{Application de la fonction: AnimateWindow}

AnimateWindow(Handle, 250{Vitesse}, AW_CENTER);

Show;

end;

end;

procedure TForm1.SpeedButton7Click(Sender: TObject);

begin

Form1.Close;

Form2.Close;

end;

end.

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,

Dialogs, Buttons, ExtCtrls, StdCtrls;

type

TForm2 = class(TForm)

SpeedButton1: TSpeedButton;

SpeedButton2: TSpeedButton;

Label8: TLabel;

Label1: TLabel;

procedure SpeedButton1Click(Sender: TObject);

procedure SpeedButton2Click(Sender: TObject);

private

{Declarations privees}

public

{Declarations publiques}

end;

var

Form2: TForm2;

implementation

{$R *.DFM}

uses disktrat, Unit1;

procedure TForm2.SpeedButton1Click(Sender: TObject);

begin

Form1.Show;

end;

procedure TForm2.SpeedButton2Click(Sender: TObject);

begin

Application.Terminate;

end;

end.

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.