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

Аналоговые и цифровые системы видеонаблюдения. Обеспечение безопасности особо ответственных или территориально распределенных объектов. Выбор технологии системы видеонаблюдения, анализ основных критериев и параметров выбора. Алгоритм расчета проекта.

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

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

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

Вопросы, относящиеся к обеспечению охраны труда при работе за компьютером, регулируются Федеральным законом от 17.07.99 № 181-ФЗ "Об основах охраны труда в Российской Федерации" (далее - Закон об охране труда) и Санитарными правилами и нормами СанПиН 2.2.2.542-96 "Гигиенические требования к видеодисплейным терминалам, персональным электронно-вычислительным машинам и организации работы" (далее - СанПиН 2.2.2.542-96).

Естественное освещение осуществляется за счет светоприемов, ориентированных преимущественно на север и северо-восток, и обеспечивающие коэффициент естественной освещенности (КЕО) около 1,5% на территории офиса. Указанное значение КЕО нормируется и соответствует для зданий, расположенных в третьем световом климатическом поясе.

Площадь одного рабочего места для сотрудников отделов работающих за компьютером соответствует не менее 6 м2., а объем - не менее 23м3.

В отделах обеспечивается температура воздуха в теплый период года - не более 23-25 С0, в холодный - 22-24 С0, относительная влажность воздуха - 40-60%, скорость движения воздуха - 0,1м/с, за счет использовании системы кондиционирования и жалюзи на окнах, которые позволяют предотвратить прямое падение солнечных лучей.

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

Так как в помещении отдела расположено 5 рабочих мест и площадь помещения составляет 55 м2 и учтено, что расстояние между рабочими столами с мониторами составляет 2 м, а между боковыми поверхностями мониторов - 1,2 м. высота рабочей поверхности составляет 750 мм. Модульными размерами рабочей поверхности равны: ширина 1200 мм, глубина 1000 мм. Рабочий стол имеет пространство для ног с высотой 600 мм, шириной - 500 мм, глубиной на уровне колен - 450 мм, а на уровне вытянутых ног - 650 мм.

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

Экран монитора в отделах имеет положение от глаз пользователя на оптимальном расстоянии 650 мм. На рабочем месте установлен легко перемещающийся блок для документов. В помещениях с компьютерами ежедневно проводится влажная уборка. Они должны быть оснащены аптечкой первой помощи и углекислотными огнетушителями.

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

СанПиН 2.2.2.542-96 устанавливают категории тяжести и напряженности работы на компьютерах, которые определяются: для группы А - по суммарному числу считываемых знаков на рабочую смену, но не более 60 тыс. знаков за смену; для группы Б - по суммарному числу считываемых или вводимых знаков за рабочую смену, но не более 40 тыс. знаков за смену.

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

Виды трудовой деятельности разделяются на три группы:

· Группа А - работа по считыванию информации с экрана монитора с предварительным запросом;

· Группа Б - работа по вводу информации;

· Группа В - творческая работа в режиме диалога с компьютером.

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

При восьми часовой работе на компьютере регламентированы перерывы:

· Для I категории работ - через 2 часа от начала работы смены и через 2 часа после обеденного перерыва продолжительностью по 15 минут.

· Для II категории работ - через 2 часа от начала рабочей смены и через 1,5 - 2 часа после обеденного перерыва продолжительностью по 15 мин. или через каждый час работы продолжительностью по 10 минут.

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

Во время регламентированных перерывов с целью снижения нервно-эмоционального напряжения, уменьшения утомления глаз, устранения гиподинамии и гипокинезии целесообразно выполнять комплексы упражнений, изложенных в СанПиН 2.2.2.542-96.

Влияние компьютера на здоровье пользователя

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

При изучении влияния работы с дисплеем на организм оператора на первом месте стоит вопрос о воздействии электромагнитного изучения. Дисплеи, выполненные на электронно-лучевых трубках, являются потенциальным источником мягкого рентгеновского, ультрафиолетового, инфракрасного, видимого, радиочастотного, сверх- и низкочастотного электромагнитного излучения. Уровни ультрафиолетового и инфракрасного излучений ниже естественного фона или соответствуют ему и не могут оказывать вредные воздействия. На рабочих местах пользователей дисплеев имеют место низкоинтенсивные электромагнитные излучения, которые не превышают допустимых значений электрических и магнитных полей для диапазона частот 60 кГц - 300 МГц. Максимальный уровень напряженности электрического поля регистрируется у задней панели дисплея и несколько меньше - на расстоянии 10 см от экрана и корпуса дисплея.

Многолетний опыт медицинского наблюдения за пользователями компьютеров указывает на возникновение у операторов в процессе длительной непрерывной работы характерных зрительных жалоб и функциональных нарушений. По различным данным частота проявлений зрительного утомления у пользователей компьютеров колеблется от 10-40% (ежедневно) до 40-92% (по крайней мере, время от времени). Субъективные симптомы астенопии обнаруживаются обычно жалобами на дискомфорт, неприятные ощущения со стороны глазных яблок (тяжесть, жжение, светобоязнь, ощущение инородного тела или "песка"), временную расфокусировку рассматриваемых объектов, их периодическое двоение. Если явления зрительного утомления нарастают, то неприятные ощущения сменяются болевыми с локализацией боли не только в области глазных яблок, но и надбровных дуг, а также головы.

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

Профилактика общего утомления

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

1. Делайте обязательные перерывы в работе по возможности через каждые 30-60 мин. После 2-х часов работы (или после 1 часа интенсивной деятельности) перерыв является строго обязательным. Не следует использовать для загрузки компьютерные игры, поскольку они не снимают утомление и не дают полноценного отдыха.

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

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

Профилактика зрительного утомления

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

Пожарная безопасность

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

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

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

Горючими компонентами в офисе являются: перегородки, двери, полы, перфокарты и перфоленты, изоляция кабелей и др.

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

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

· Ограничение пожарной опасности строительных материалов, используемых в поверхностных слоях конструкций здания, в том числе отделок, помещений и путей эвакуации;

· Наличие средств пожаротушения;

· Сигнализация и оповещение о пожаре.

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

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

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

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

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

Газовые огнетушители применяются для тушения жидких и твердых веществ, а также электроустановок, находящихся под напряжением.

Объекты офиса кроме АПС необходимо оборудовать установками стационарного автоматического пожаротушения. Наиболее целесообразно применять в офисе установки газового тушения пожара, действие которых основано на быстром заполнении помещения огнетушащим газовым веществом с резким сжижением содержания в воздухе кислорода. При использовании АУГП для предотвращения отравления персонала предусмотрена предупредительная звуковая и световая сигнализация, срабатывающая при автоматическом включении за 30 секунд до начала выпуска газа.

В отделах офиса осуществляются следующие противопожарные мероприятия:

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

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

3. Оборудованы места для курения, специальные комнаты для курения, снабженные пепельницами, огнетушителями и т. д.

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

5. Сотрудник обнаруживший пожар звонит 01.

План эвакуации

Согласно Правилам пожарной безопасности в Российской Федерации ППБ 01-2003 (п. 16) в здание офиса при единовременном нахождении на этаже более 10 человек должны быть разработаны и на видных местах вывешены планы (схемы) эвакуации людей в случае пожара. На объекте с массовым пребыванием людей (50 и более человек) в дополнение к схематическому плану эвакуации людей при пожаре должна быть разработана инструкция, определяющая действия персонала по обеспечению безопасной и быстрой эвакуации людей, по которой не реже одного раза в полугодие должны проводиться практические тренировки всех задействованных для эвакуации работников.

В здании офиса при возникновении пожара персонал действует по заранее утвержденному общеобъектовному плану эвакуации.

Под планом эвакуации должны быть подписи лиц, составивших план эвакуации и подписи сотрудников, ознакомленных с ним.

Заключение

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

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

Список использованной литературы

1. Дарахвелидзе П. Г., Марков Е. П. Delphi 6 - Санкт Петербург: БХВ-Петербург, 2011. - 802 c.

2. Гофман В. Э., Хомоненко А. Д. Delphi 6. Санкт Петербург: БХВ Петербург, 2012. 1152 с.

3. Бесслер Р., Дойч А. Проектирование сетей связи: Справочник: Пер. с нем. - М.: Радио и связь, 1998.- 272 с.

4. Штагер В.В., Цифровые системы связи. Теория, расчет и оптимизация, М.: 2013. - 310с.

5. Фролов А. В., Фролов В. Г. Локальные сети персональных компьютеров. - М.: Диалог-МИФИ, 1999г. - 432 с.

6. Убайдуллаев Р. Р. Волоконно-оптические сети - М.: Эко-Трендз, 2012.- 332 с.

7. Бертсекас Д., Галлагер Р. Сети передачи данных - М.: Мир, 1996. - 288 с.

8. Семенов А. Б., Стрижаков С. К. Структурированные Кабельные Системы - М.: АйТи-Пресс, 2001. - 236 с.

9. Олифер В. Г., Олифер Н. А. Компьютерные сети. Принципы, технологии, протоколы, Санкт Петербург: Питер-пресс, 2002.

Приложение

Исходный код программы

unit Algorithm;

interface

uses Windows, Classes, Forms, SysUtils, PointsTypeDef;

var

StepCount:Integer;

procedure Calculate(P,W:TPointSet);

implementation

uses Global;

procedure Delay(millisec:integer);

var

ct:longint;

begin

ct:=GetTickCount;

repeat

Application.ProcessMessages;

until((GetTickCount-ct)>=Longint(millisec));

end;

function Sign(x:integer):integer;

begin

if x>0 then Result:=-1;

if x=0 then Result:=0;

if x<0 then Result:=1;

end;

function Visible(Point,P1,P2:TPoint):integer;

begin

Result:=Sign((Point.x-P1.x)*(P2.y-P1.y)-(Point.y-P1.y)*(P2.x-P1.x));

end;

function Intersection(P1,P2,W1,W2:TPoint):TPoint;

var

Coefficient:array [1..2,1..2] of real;

Parameter,RightPart:array [1..2] of real;

a11,a12,a21,a22,determinant:integer;

begin

P1.y:=-P1.y;

P2.y:=-P2.y;

W1.y:=-W1.y;

W2.y:=-W2.y;

a11:=P2.x-P1.x;

a12:=W1.x-W2.x;

a21:=P2.y-P1.y;

a22:=W1.y-W2.y;

RightPart[1]:=W1.x-P1.x;

RightPart[2]:=W1.y-P1.y;

determinant:=a11*a22-a12*a21;

Coefficient[1,1]:=a22/determinant;

Coefficient[1,2]:=-a12/determinant;

Coefficient[2,1]:=-a21/determinant;

Coefficient[2,2]:=a11/determinant;

Parameter[1]:=Coefficient[1,1]*RightPart[1]+Coefficient[1,2]*RightPart[2];

Parameter[2]:=Coefficient[2,1]*RightPart[1]+Coefficient[2,2]*RightPart[2];

Result.x:=Round(P1.x+(P2.x-P1.x)*Parameter[1]);

Result.y:=-Round(P1.y+(P2.y-P1.y)*Parameter[1]);

end;

function Fuct_Sech(Beginning,Ending,W1,W2:TPoint):boolean;

begin

if ((Visible(Beginning,W1,W2)<0) and (Visible(Ending,W1,W2)>0)) or

((Visible(Beginning,W1,W2)>0) and (Visible(Ending,W1,W2)<0))

then Result:=true else Result:=false;

end;

procedure Calculate(P,W:TPointSet);

var

i,j:integer;

S,F:TPoint;

TemporaryPointsArray:TPointSet;

begin

TemporaryPointsArray:=TPointSet.Create;

for i:=1 to W.Quantity-1 do

begin

Delay(1000);

MessageBeep($FFFF);

Inc(StepCount);

Form1.StatusBar.SimpleText:='Шаг '+IntToStr(StepCount);

TemporaryPointsArray.Reset;

for j:=1 to P.Quantity do

begin

if j<>1 then

if Fuct_Sech(S,P.Points[j],W.Points[i],W.Points[i+1])=true then TemporaryPointsArray.Add(Intersection(S,P.Points[j],W.Points[i],W.Points[i+1]))

; { else }F:=P.Points[j];

S:=P.Points[j];

if Visible(S,W.Points[i],W.Points[i+1])>=0 then TemporaryPointsArray.Add(S);

end;

if TemporaryPointsArray.Quantity<>0 then

begin

F:=P.Points[1];

if Fuct_Sech(S,F,W.Points[i],W.Points[i+1])=true then

TemporaryPointsArray.Add(Intersection(S,F,W.Points[i],W.Points[i+1]));

end;

P.CopyFrom(TemporaryPointsArray);

Form1.EnterBox.Invalidate;

end;

TemporaryPointsArray.Free;

end;

end.

unit Global;

interface

uses

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

ExtCtrls, ComCtrls, Rubberband, Menus, PointsTypeDef, RXCtrls, Buttons,

StdCtrls;

type

TForm1 = class(TForm)

PaintPanel: TPanel; {"Задняя" панель}

EnterBox: TPaintBox; {Область рисования}

StatusBar: TStatusBar; {Нижняя информационная панель}

Panel1: TPanel; {Панель с кнопками}

BitBtn1: TBitBtn; {Кнопка "Замкнуть"}

BitBtn2: TBitBtn; {Кнопка "Вернуть"}

BitBtn3: TBitBtn; {Кнопка "Очистить"}

BitBtn4: TBitBtn; {Кнопка "Вычислить"}

procedure FormCreate(Sender: TObject);

procedure EnterBoxMouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure EnterBoxMouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure EnterBoxPaint(Sender: TObject);

procedure LinkAllPoints(Sender: TObject);

procedure ClearEnterBox(Sender: TObject);

procedure FormDestroy(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure RestorePolygon(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure BitBtn4Click(Sender: TObject);

private

SourcePointsArray, {Исходный массив точек}

FinalPointsArray, {Результирующий массив точек}

CuttingWindow:TPointSet; {"Обрезающее" окно}

IsPolygonConnected, {Завершен ли многоугольник}

IsCuttingWindowConnected, {Завершено ли окно}

CanPaint:boolean; {Рисуем ли многоугольник ?}

Quantity:integer; {Количество точек}

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses Algorithm;

var

CurrentPoint:TPoint; {Текущее положение указателя мыши}

{$R *.DFM}

{Создаем форму}

procedure TForm1.FormCreate(Sender: TObject);

begin

IsPolygonConnected:=false;

IsCuttingWindowConnected:=false;

CanPaint:=true; {Рисуем многоугольник}

Quantity:=0; {Вершин 0}

SourcePointsArray:=TPointSet.Create;

FinalPointsArray:=TPointSet.Create;

CuttingWindow:=TPointSet.Create;

end;

{Удаляем форму}

procedure TForm1.FormDestroy(Sender: TObject);

begin

SourcePointsArray.Free;

FinalPointsArray.Free;

CuttingWindow.Free;

end;

{Реакция на движение мыши}

procedure TForm1.EnterBoxMouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

StatusBar.SimpleText:='X:'+IntToStr(x)+' Y:'+IntToStr(y);

CurrentPoint.x:=x;

CurrentPoint.y:=y;

end;

{Реакция на отжатие кнопки мыши}

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

Shift: TShiftState; X, Y: Integer);

begin

case CanPaint of

true:if Button=mbLeft then {Если рисуем многоугольник}

begin

SourcePointsArray.Add(CurrentPoint);

FinalPointsArray.CopyFrom(SourcePointsArray);

end;

false:if Button=mbLeft then {Если рисуем окно}

begin

CuttingWindow.Add(CurrentPoint);

end;

end;

EnterBox.Invalidate;

end;

{Рисуем}

procedure TForm1.EnterBoxPaint(Sender: TObject);

var

i:integer;

begin

EnterBox.Canvas.Pen.Style:=psSolid;

for i:=1 to FinalPointsArray.Quantity-1 do

begin

EnterBox.Canvas.TextOut(FinalPointsArray.Points[i].x+2,FinalPointsArray.Points[i].y+2,

'('+IntToStr(FinalPointsArray.Points[i].x)+':'+IntToStr(FinalPointsArray.Points[i].y)+')');

EnterBox.Canvas.Rectangle(FinalPointsArray.Points[i].x-1,FinalPointsArray.Points[i].y-1,FinalPointsArray.Points[i].x+2,FinalPointsArray.Points[i].y+2);

EnterBox.Canvas.MoveTo(FinalPointsArray.Points[i].x,FinalPointsArray.Points[i].y);

EnterBox.Canvas.LineTo(FinalPointsArray.Points[i+1].x,FinalPointsArray.Points[i+1].y);

end;

if(IsPolygonConnected)and(FinalPointsArray.Quantity>1)then

begin

EnterBox.Canvas.TextOut(FinalPointsArray.Points[FinalPointsArray.Quantity].x+2,FinalPointsArray.Points[FinalPointsArray.Quantity].y+2,

'('+IntToStr(FinalPointsArray.Points[FinalPointsArray.Quantity].x)+':'+IntToStr(FinalPointsArray.Points[FinalPointsArray.Quantity].y)+')');

EnterBox.Canvas.Rectangle(FinalPointsArray.Points[FinalPointsArray.Quantity].x-1,FinalPointsArray.Points[FinalPointsArray.Quantity].y-1,FinalPointsArray.Points[FinalPointsArray.Quantity].x+2,FinalPointsArray.Points[FinalPointsArray.Quantity].y+2);

EnterBox.Canvas.MoveTo(FinalPointsArray.Points[FinalPointsArray.Quantity].x,FinalPointsArray.Points[FinalPointsArray.Quantity].y);

EnterBox.Canvas.LineTo(FinalPointsArray.Points[1].x,FinalPointsArray.Points[1].y);

end;

if CuttingWindow.Quantity>1 then

begin

EnterBox.Canvas.Pen.Style:=psDot;

for i:=1 to CuttingWindow.Quantity-1 do

begin

EnterBox.Canvas.MoveTo(CuttingWindow.Points[i].x,CuttingWindow.Points[i].y);

EnterBox.Canvas.LineTo(CuttingWindow.Points[i+1].x,CuttingWindow.Points[i+1].y);

end;

if(IsCuttingWindowConnected)and(CuttingWindow.Quantity>1)then

begin

EnterBox.Canvas.MoveTo(CuttingWindow.Points[CuttingWindow.Quantity].x,CuttingWindow.Points[CuttingWindow.Quantity].y);

EnterBox.Canvas.LineTo(CuttingWindow.Points[1].x,CuttingWindow.Points[1].y);

end;

end;

end;

{Завершаем многоугольник или окно}

procedure TForm1.LinkAllPoints(Sender: TObject);

begin

if FinalPointsArray.Quantity<2 then exit; {менее 2-х вершин - выходим из процедуры}

if (IsPolygonConnected)and(CuttingWindow.Quantity>2)then

begin

IsCuttingWindowConnected:=true;

BitBtn4.Enabled:=true;

end;

IsPolygonConnected:=true;

CanPaint:=false;

EnterBox.Invalidate;

end;

{Очищаем поле ввода}

procedure TForm1.ClearEnterBox(Sender: TObject);

begin

BitBtn4.Enabled:=false;

SourcePointsArray.Reset;

FinalPointsArray.Reset;

CuttingWindow.Reset;

CanPaint:=true;

IsPolygonConnected:=false;

IsCuttingWindowConnected:=false;

EnterBox.Invalidate;

end;

procedure TForm1.RestorePolygon(Sender: TObject);

begin

BitBtn4.Enabled:=false;

CuttingWindow.Reset;

IsCuttingWindowConnected:=false;

FinalPointsArray.CopyFrom(SourcePointsArray);

EnterBox.Invalidate;

end;

procedure TForm1.BitBtn3Click(Sender: TObject);

begin

ClearEnterBox(Sender);

end;

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

RestorePolygon(Sender);

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

LinkAllPoints(Sender);

end;

procedure TForm1.BitBtn4Click(Sender: TObject);

begin

EnterBox.Cursor:=crHourGlass;

CuttingWindow.Add(CuttingWindow.Points[1]);

StatusBar.SimpleText:='Шаг 1';

StepCount:=1;

Calculate(FinalPointsArray,CuttingWindow);

CuttingWindow.Reset;

EnterBox.Cursor:=crDefault;

EnterBox.Invalidate;

BitBtn4.Enabled:=false;

end;

end.

unit PointsTypeDef;

interface

uses Windows;

type

TPointSet=class(TObject)

public

{Items} Points:array [1..100] of TPoint;

{Count} Quantity:integer;

constructor Create;

procedure Reset;

procedure Add(Point:TPoint);

procedure CopyFrom(Source:TPointSet);

end;

implementation

constructor TPointSet.Create;

begin

inherited Create;

Reset;

end;

procedure TPointSet.Reset;

var

i:integer;

begin

for i:=1 to 50 do

begin

Points[i].x:=-1;

Points[i].y:=-1;

end;

Quantity:=0;

end;

procedure TPointSet.Add(Point:TPoint);

begin

Inc(Quantity);

Points[Quantity]:=Point;

end;

procedure TPointSet.CopyFrom(Source:TPointSet);

var

i:integer;

begin

for i:=1 to 50 do Points[i]:=Source.Points[i];

Quantity:=Source.Quantity;

end;

end.

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

...

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

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