Відсікання відрізка на площині прямокутним вікном
Розробка програмного продукту, що реалізує один із алгоритмів відсікання невидимих ліній, володіє зручним інтуїтивним інтерфейсом користувача, та створення супроводжуючої документації. Можливості об’єктно-орієнтованої системи візуального програмування.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 04.11.2016 |
Размер файла | 937,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Після проведення тестів було виявлено: програмне забезпечення працює без збоїв в 64-розрядній операційній системі, без встановленого додаткового програмного оточення. Результати тестових прикладів збігаються з аналогічними, отриманими в іншому програмному забезпеченні. Працюють всі команди меню та комбінації гарячих клавіш.
Рис. 3.7 - Результати виконання контрольного прикладу: а - інформаційне повідомлення; б - відсікання
4. Охорона праці
Охорона праці - це система правових актів, соціально-економічних, організаційно-технічних, санітарно-гігієнічних i лікувально-профілактичних заходів i засобів, спрямованих на забезпечення здоров'я та працездатність людини в процесі праці. Основоположне значення в галузі охорони праці має Закон України «Про охорону праці». Дія цього закону поширюється на всіх юридичних та фізичних осіб, які відповідно до законодавства використовують найману працю, та на всіх працівників.
Методологічною основою охорони праці є аналіз умов праці, технологічного процесу, виробничого обладнання з точки зору можливості виникнення небезпечних i шкідливих виробничих факторів.
Стратегічним направленням розвитку охорони праці є створення безпечної техніки та безпечних технологій, комплексна автоматизація виробництва i на цій основі забезпечення на всіх підприємствах умов, виключаючи виробничий травматизм, професійні захворювання i важку фізичну працю.
Поліпшення умов та охорона праці стає одним із важливих напрямків підвищення матеріального та культурного рівня життя народу.
Зараз в Україні створена і діє ціла система законодавчих та нормативно-правових актів, що регламентують питання охорони праці в усіх галузях виробництва та сферах діяльності.
Державна політика в галузі охорони праці базується на принципах:
пріоритет життя і здоров'я працівників по відношенню до результатів виробничої діяльності підприємства;
повна відповідальність роботодавця за створення належних, безпечних і здорових умов праці;
обов'язковий соціальний захист працівників, повне відшкодування шкоди особам, які потерпіли від нещасних випадків на виробництві та професійних захворювань.
Забезпечення здорових i безпечних умов праці покладається на адміністрацію підприємства. Адміністрація зобов'язана вводити сучасні засоби техніки безпеки, попереджуючи виробничий травматизм i забезпечувати санітарно-гігієнічні умови, попереджуючи виникнення професійних захворювань робочих i службовців.
Адміністрація підприємства зобов'язана забезпечити належне технічне обладнання всіх робочих місць i створити на них умови праці, відповідні правилам з охорони праці. Адміністрація розробляє інструкції, інструктує працівників, контролює дотримання працівниками інструкції з охорони праці, проводить розслідування нещасних випадків на виробництві.
Трудове законодавство є основою для розробки типових правил внутрішнього трудового розпорядку для робітників i службовців підприємств, установ, організацій.
Інструкції з охорони праці повинні містити розділи: загальні вимоги безпеки; вимоги безпеки перед початком роботи; вимоги безпеки під час роботи; вимоги безпеки в аварійних ситуаціях; вимоги безпеки по закінченню роботи.
Виконання вимог інструкції являється обов'язковим для працюючих. Інструкції можуть бути видані на руки, чи розміщенні на робочих місцях, чи зберігатися у визначеному місці, доступному для працюючих.
Розпочинаючи працювати з персональним комп'ютером (ПК), необхідно пам'ятати, що це дуже складна апаратура, яка потребує акуратного й обережного ставлення до неї, високої самодисципліни на всіх етапах її експлуатації. Напруга живлення ПК 220 В є небезпечною для життя людини. Тому, незважаючи на те, що в конструкції комп'ютера передбачена достатня ізоляція від струмопровідних ділянок, необхідно знати та чітко виконувати ряд правил техніки безпеки.
Забороняється:
торкатися екрана і тильного боку дисплея, проводів живлення та заземлення, з'єднувальних кабелів;
порушувати порядок увімкнення й вимикання апаратних блоків;
класти на апаратуру сторонні предмети;
працювати за комп'ютером у вологому одязі та вологими руками;
палити в приміщенні, де знаходяться комп'ютери.
Перед початком роботи на комп'ютері необхідно отримати дозвіл на роботу в уповноважених осіб педагогічно-лаборантського складу. Під час роботи на комп'ютері необхідно:
суворо дотримуватися інструкції з експлуатації апаратури;
працювати на клавіатурі чистими сухими руками, не натискуючи на клавіші без потреби чи навмання;
працюючи з дискетами, оберігати їх від ударів, дії магнітного поля й тепла, правильно вставляти дискети в дисковод;
коректно завершувати роботу з тим чи іншим програмним засобом.
У разі появи запаху горілого, самовільного вимикання апаратури, незвичних звуків треба негайно повідомити про це обслуговуючий персонал та вимкнути комп'ютер. Не можна працювати на комп'ютері при недостатньому освітленні, високому рівні шуму тощо.
Під час роботи комп'ютера екран дисплея є джерелом електромагнітного випромінювання, яке руйнує зір, викликає втому, знижує працездатність. Через це треба, щоб очі користувача знаходилися на відстані 60-70 см від екрана, а безперервна робота за комп'ютером тривала не більше 25 хв. для дітей та 40-45 хв. для дорослих.
При роботі з ЕОМ необхідно бути уважним, не відвертати уваги на сторонні справи та не відвертати увагу у других про всі виявлені несправності негайно повідомити начальнику ЕОМ, а в аварійних ситуаціях негайно зупинити роботу; дотримуватись правил особистої гігієни, харчуватися тільки у спеціально обладнаних для цієї мети місцях; зберігати одяг в відведених місцях.
Будівлі та приміщення, де розміщені робочі місця операторів, мають бути не нижче II ступеня вогнестійкості згідно з ДБН В.1.1.7-2002.
Площу та об'єм для одного робочого місця оператора визначають згідно з вимогами ДсанПіН 3.3.2-007-98. Площа має бути не менше 6,0 м2, об'єм - не менше 20,0 м3.
Заземлені конструкції, що знаходяться в приміщеннях, де розміщені робочі місця операторів (батареї опалення, водопровідні труби, кабелі із заземленим відкритим екраном), мають бути надійно захищені діелектричними щитками або сітками з метою недопущення потрапляння працівника під напругу.
Проходи до засобів пожежогасіння мають бути вільними.
Організація робочого місця оператора повинна забезпечувати відповідність усіх елементів робочого місця та їх розташування вимогам НПАОП 0.00-1.28-10 «Правил охорони праці під час експлуатації обчислювальних машин».
Розміщення принтера або іншого пристрою введення-виведення інформації на робочому місці має забезпечувати добру видимість екрана, зручність ручного керування пристроєм введення-виведення інформації в зоні досяжності моторного поля.
Під матричні принтери потрібно підкладати вібраційні килимки для гасіння вібрації та шуму.
За потреби особливої концентрації уваги під час виконання робіт суміжні робочі місця операторів необхідно відділяти одне від одного перегородками висотою 1,5-2 м.
При організації робочого місця, яке передбачає роботу з ЕОМ для керування технологічним обладнанням (верстати з програмним управлінням, роботизовані технологічні комплекси, обладнання для гнучкого автоматизованого виробництва тощо), слід передбачати:
достатній простір для оператора ЕОМ;
вільну досяжність органів ручного керування в зоні моторного поля (відстань по висоті - 900-1330 мм, по глибині - 400-500 мм);
розташування екрана у робочій зоні, яке буде забезпечувати зручність зорового спостереження у вертикальній площині під кутом 30° від лінії зору оператора, а також зручність використання під час коригування керуючих програм одночасно з виконанням основних виробничих операцій;
можливість повертання екрана навколо горизонтальної та вертикальної осей.
Щодня перед початком роботи необхідно очищати екран від пилу та інших забруднень.
Після закінчення роботи ЕОМ повинні бути відключені від електричної мережі.
У разі виникнення аварійної ситуації необхідно негайно відключити ЕОМ від електричної мережі.
Не допускається:
виконувати обслуговування, ремонт та налагодження ЕОМ безпосередньо на робочому місці оператора;
зберігати біля ЕОМ папір, дискети, інші носії інформації, запасні блоки, деталі тощо, якщо вони не використовуються для поточної роботи;
відключати захисні пристрої, самочинно проводити зміни у конструкції та складі ЕОМ або їх технічне налагодження;
працювати з матричним принтером за відсутності вібраційного килимка та зі знятою (піднятою) верхньою кришкою.
Конструкція робочого місця користувача ЕОМ має забезпечити підтримання оптимальної робочої пози.
Робочі місця з ЕОМ слід так розташовувати відносно світових прорізів, щоб природне світло падало збоку переважно зліва.
При розміщенні робочих столів з ЕОМ слід дотримувати такі відстані: між бічними поверхнями ЕОМ 1,2 м, відстань від тильної поверхні одного дисплею до екрана іншого - 2,5 м.
Конструкція робочого столу має відповідати сучасним вимогам ергономіки і забезпечувати оптимальне розміщення на робочій поверхні використовуваного обладнання (дисплея, клавіатури, принтера) і документів.
Висота робочої поверхні робочого столу з ЕОМ має регулюватися в межах 680...800 мм, а ширина і глибина - забезпечувати можливість виконання операцій у зоні досяжності моторного поля (рекомендовані розміри: 600..1400 мм, глибина - 800..1000 мм).
Робочий стіл повинен мати простір для ніг заввишки не менше ніж 600 мм, завширшки не менше ніж 500 мм, завглибшки (на рівні колін) не менше ніж 450 мм, на рівні простягнутої ноги - ніж 650 мм.
Робочий стілець має бути підйомно-поворотним, регульованим за висотою, з кутом і нахилом сидіння та спинки і за відстанню від спинки до переднього краю сидіння поверхня сидіння має бути плоскою, передній край - заокругленим. Регулювання за кожним із параметрів має здійснюватися незалежно, легко і надійно фіксуватися. Шаг регулювання елементів стільця має становити: для лінійних розмірів - 15..20 мм, для кутових 2..5°. Зусилля регулювання має не перевищувати 20 Н.
Висота поверхні сидіння має регулюватися в межах 400..500 мм, а ширина і глибина становити не менше ніж 400 мм. Кут нахилу сидіння - до 15° вперед і до 5° назад.
Висота спинки стільця має становити (300±20) мм, ширина - не менше ніж 380 мм, радіус кривизни горизонтальної площини - 400 мм. Кут нахилу спинки має регулюватися в межах 1..30° від вертикального положення. Відстань від спинки до переднього краю сидіння має регулюватися в межах 260..400 мм.
Для зниження статичного напруження м'язів верхніх кінцівок слід використовувати стаціонарні або змінні підлокітники завдовжки не менше ніж 250 мм, завширшки 50..70 мм, що регулюються за висотою над сидінням у межах 230..260 мм і відстанню між підлокітниками в межах 350..500 мм.
Поверхня сидіння і спинки стільця має бути напівм'якою з нековзним, повітронепроникним покриттям, що легко чиститься і не електризується.
Робоче місце має бути обладнане підставкою для ніг завширшки не менше ніж 300 мм, завглибшки не менше ніж 400 мм, що регулюється за висотою в межах до 150 мм і за кутом нахилу опорної поверхні підставки до 20°. Підставка повинна мати рифлену поверхню і бортик по передньому краю заввишки 10 мм.
Екран має розташовуватися на оптимальній відстані від очей користувача, що становить 600..700 мм, але не ближче ніж за 600 мм з урахуванням розміру літерно-цифрових знаків і символів.
Розташування екрана має забезпечувати зручність зорового спостереження у вертикальній площині під кутом +30° до нормальної лінії погляду працюючого.
Клавіатуру слід розташовувати на поверхні столу на відстані 100..300 мм від краю, зверненого до працюючого. У конструкції клавіатури має передбачатися опорний пристрій (виготовлений з матеріалу з високим коефіцієнтом тертя, що перешкоджає мимовільному її зсуву), який дає змогу змінювати кут нахилу поверхні клавіатури у межах 5..15°. Висота середнього рядка клавіш має не перевищувати 30 мм. Поверхня клавіатури має бути матовою з коефіцієнтом відбиття 0,4.
Розташування пристрою введення-виведення інформації має забезпечувати добру видимість екрана, зручність ручного керування в зоні досяжності моторного поля і за висотою - 900..1300 мм, за шириною 400..500 мм.
Для забезпечення захисту і досягнення нормованих рівнів комп'ютерних випромінювань необхідно застосування приекранних фільтрів, локальних світлофільтрів (засобів індивідуального захисту очей) та інших засобів захисту, що пройшли випробування в акредитованих лабораторіях і мають щорічний гігієнічний сертифікат.
Пожежа - це неконтрольоване горіння поза спеціальним вогнищем, що поширюється в часі і просторі; це стихійне лихо, яке приводить до загибелі людей, знищення матеріальних ресурсів та забруднення навколишнього середовища.
Пожежі поділяються на 5 класів:
кл. - горіння твердих речовин;
кл. - горіння рідин;
кл. - горіння газів;
кл. - горіння металів;
кл. - горіння електропристроїв.
Причинами виникнення пожеж можуть бути людський та природній фактори.
людський фактор:
необережне поводження з вогнем;
дитячі пустощі з вогнем;
пічне опалення;
несправності електромережі;
природній фактор:
атмосферна електрика;
теплове, хімічне та мікробіологічне самозагорання.
Небезпечними факторами пожежі є:
висока температура навколишнього середовища та іскри;
токсичні продукти горіння;
понижена концентрація кисню в зоні горіння;
дим;
вибухи горючих газів, руйнування будівельних конструкцій;
паніка людей при пожежі.
Для правильного планування та успішного проведення заходів пожежної безпеки вагоме значення має оцінка об'єктів щодо їх вибухопожежонебезпеки. Умови виникнення та поширення пожежі в будівлях та приміщеннях залежить від кількості та вибухонебезпечних властивостей речовин і матеріалів, що в них знаходяться, а також особливістю технологічних процесів розміщених в них виробництв. Відповідно до норм технологічного проектування (ОНТП 24-86) та наказу МНС №833 від 03.12.2007р. За вибухопожежною та пожежною небезпекою приміщення та будівлі поділяються на п'ять категорій: А, Б, В, Г, Д.
Під пожежною безпекою об'єкта розуміють такий його стан, за якого з регламентованою імовірністю виключається можливість виникнення і розвитку пожежі та впливу на людей небезпечних чинників пожежі.
Основна система комплексу заходів та засобів щодо забезпечення пожежної безпеки об'єкта є система організаційно-технічних заходів. Всі заходи організаційно-технічного характеру на об'єкті можна розділити на організаційні, технічні, режимні та експлуатаційні.
Організаційні заходи передбачають: організацію пожежної охорони на об'єкті, проведення навчань з пожежної безпеки (включаючи інструктажі та пожежно-технічні мінімуми), застосування наочних засобів протипожежної пропаганди та агітації, організацією ДПД та ПТК, проведення перевірок, оглядів стану пожежної безпеки приміщень та об'єктів в цілому.
До технічних засобів належить: суворе дотримання правил і норм, визначених нормативними документами при реконструкції приміщень, будівель та об'єктів, технічному переоснащенні електромереж, опалення, вентиляції, освітлення і т.п.
Заходи режимного характеру передбачають заборону куріння та застосування відкритого вогню в недозволенних місцях, недопущення появи сторонніх осіб у вибухонебезпечних приміщеннях чи об'єктах, регламентацію пожежної безпеки при проведенні вогневих робіт.
Експлуатаційні заходи охоплюють своєчасне проведення профілактичних оглядів, випробувань, ремонтів технологічного та допоміжного устаткування, а також інженерного господарства (електромереж, опалення, вентиляції).
Системою протипожежного захисту є сукупність організаційних заходів, а також технічних засобів, спрямованих на запобігання впливу на людей небезпечних чинників пожежі та обмеження матеріальних збитків від неї яка здійснюється за чотирма напрямками:
обмеження розмірів та поширення пожежі;
обмеження розвитку пожежі;
забезпечення безпечної експлуатації людей та майна;
створення умов для успішного гасіння пожежі.
Забезпечення ефективності цих напрямків протипожежного захисту здійснюється за рахунок підвищення вогнестійкості будівельних конструкцій; згідно з ДСТУ БВ. 1.1-4-98 «Будівельні конструкції. Методи випробувань на вогнестійкість»; влаштування протипожежних перешкод, протипожежних стін, забезпечення протипожежних розривів та евакуаційних виходів під час проектування будівель та споруд.
Ефективне гасіння пожеж здійснюється чотирма основними способами:
охолодженням горючих речовин або зони горіння;
ізоляцією горючих речовин або окисника від зони горіння;
розбавленням концентрації повітря чи горючих речовин;
хімічним гальмуванням реакції горіння.
Для забезпечення цих способів гасіння пожеж використовуються наступні вогнегасильні речовини: вода, піна, інертні та негорючі гази, хладони, вогнегасні порошки. Вибір вогнегасної речовини залежить від класу пожежі.
Гасіння пожеж здійснюється пристосуваннями та засобами, які підрозділяються на стаціонарні, пересувні та первинні. Стаціонарні установки пожежогасіння являють собою апарати, трубопроводи та обладнання, які розміщені в постійних місцях і призначені для подачі вогнегасних речовин до місць займання. Такі установки поділяються на автоматичні та напівавтоматичні, які приводяться в дію відповідним сигналізатором (сповіщувачем) або спонукальним пристроєм.
До пересувних пожежних засобів належать пожежні машини, поїзди, катери, літаки, танки, а також пожежні насоси та мотопомпи.
Первинні засоби пожежогасіння призначені для ліквідації невеликих осередків пожеж, а також для гасіння пожеж на початковій стадії. До первинних засобів пожежогасіння належать вогнегасники, пожежний інвентар та пожежні інструменти. Залежно від вогнегасильної речовини вогнегасники поділяються на: водяні, водоімпульсні, пінні, вуглекислотні, порошкові, хладонові.
Для швидкого виявлення та оповіщення про пожежу підприємства забезпечуються системами пожежної сигналізації та оповіщення. Пожежні сповіщувачі - це пристрої, що формують сигнал про пожежу. Розрізняють пожежні сповіщувачі ручної та автоматичної дії. Ручний сповіщувач вимикає людина, що виявила пожежу, шляхом натискання на пускову кнопку.
Автоматичні сповіщувачі спрацьовують без участі людини від дії на них чинників, що супроводжують пожежу: підвищення температури, поява диму чи полум'я.
Висновки
В процесі дипломного проектування було створено програмний продукт, що реалізує алгоритм комп'ютерної графіки відсікання відрізка прямокутним вікном. Було розроблено зручний інтуїтивний інтерфейс користувача.
Розроблена програма може використовуватись під час вивчення алгоритмів комп'ютерної графіки як демонстраційний матеріал. Також було розглянуто інші алгоритми відсікання, в подальших версіях програмного забезпечення можна реалізувати алгоритм відсікання лінії вікном іншої форми.
Під час дипломного проектування було вдосконалено навички програмування в середовищі Delphi 7.
Перелік джерел
1. Архангельский А. Я. «Программирование в Delphi 7.» - М.: ООО «Бином-Пресс», 2004 г. - 1152с.: ил.
2. Гарнагина Н.Е. Безпека і охорона праці. Навчальний посібник. - Петербург: МАНЭБ, 2000. - 143 с.
3. ДСТУ 2293-93. Система стандартів безпеки праці. Терміни та визначення.
4. Жидецький В.Ц. Основи охорони праці - Львів : Укр. акад. друкарства, 2006. - 336 с
5. Маценко В.Г. Комп'ютерна графіка: Навчальний посібник. - Чернівці: Рута, 2009 - 343 с.
Додаток А. Тексти програмного коду
unit main_unit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons, CutLength, Menus, ComCtrls;
type
TForm_main = class(TForm)
ImInitial: TImage;
LbRectangle: TLabel;
LbTopLeftX: TLabel;
LbTopLeftY: TLabel;
LbBottomRightX: TLabel;
LbBottomRightY: TLabel;
EdTopLeftX: TEdit;
EdTopLeftY: TEdit;
EdBottomRightX: TEdit;
EdBottomRightY: TEdit;
LbLine: TLabel;
EdBeginingX: TEdit;
EdBeginingY: TEdit;
EdEndX: TEdit;
EdEndY: TEdit;
ButDraw: TBitBtn;
ButClear: TBitBtn;
ButClose: TBitBtn;
MenuDraw: TMainMenu;
nExe: TMenuItem;
nDraw: TMenuItem;
nClear: TMenuItem;
nNil: TMenuItem;
nClose: TMenuItem;
RGWayDraw: TRadioGroup;
ButClearImage: TBitBtn;
nHelp: TMenuItem;
nAbout: TMenuItem;
N1: TMenuItem;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
N2: TMenuItem;
N3: TMenuItem;
ColorBrush: TColorDialog;
ColorPen: TColorDialog;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
procedure ButCloseClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ButClearClick(Sender: TObject);
procedure ButDrawClick(Sender: TObject);
procedure RGWayDrawClick(Sender: TObject);
procedure ImInitialMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure ImInitialMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure ImInitialMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure ButClearImageClick(Sender: TObject);
procedure nAboutClick(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form_main: TForm_main;
hShape,DrawMouse:boolean;
implementation
{$R *.dfm}
procedure TForm_main.ButCloseClick(Sender: TObject);
begin
Close;
end;
procedure TForm_main.FormCreate(Sender: TObject);
begin
//ImChanged.Canvas.Brush.Color:=clWhite;
ImInitial.Canvas.Brush.Color:=clWhite;
hShape:=false;
end;
procedure TForm_main.ButClearClick(Sender: TObject);
begin
EdBeginingX.Clear;
EdBeginingY.Clear;
EdEndX.Clear;
EdEndY.Clear;
EdTopLeftX.Clear;
EdTopLeftY.Clear;
EdBottomRightX.Clear;
EdBottomRightY.Clear;
end;
procedure TForm_main.ButDrawClick(Sender: TObject);
var hRec,hLine,h,f:boolean;
TopLeftX,TopLeftY,BottomRightX,BottomRightY,BeginingX,BeginingY,EndX,EndY,BeginingCode,EndCode:integer;
begin
ImInitial.Canvas.FillRect(Canvas.ClipRect);
// ImChanged.Canvas.FillRect(Canvas.ClipRect);
hRec:=true;
hLine:=true;
Check(EdTopLeftX.Text,EdTopLeftY.Text,EdBottomRightX.Text,EdBottomRightY.Text,TopLeftX,TopLeftY,BottomRightX,BottomRightY,hRec);
Check(EdBeginingX.Text,EdBeginingY.Text,EdEndX.Text,EdEndY.Text,BeginingX,BeginingY,EndX,EndY,hLine);
if not(hRec)
then MessageDlg('Координати прямокутного вікна задані невірно',mtError,[mbOK],0);
if not(hLine)
then MessageDlg('Координати відрізка задані невірно',mtError,[mbOK],0);
if (hRec and hLine)
then
begin
if TopLeftX>BottomRightX
then Swapping(TopLeftX,BottomRightX);
if TopLeftY>BottomRightY
then Swapping(TopLeftY,BottomRightY);
ImInitial.Canvas.Rectangle(TopLeftX,TopLeftY,BottomRightX,BottomRightY);
ImInitial.Canvas.MoveTo(BeginingX,BeginingY);
ImInitial.Canvas.LineTo(EndX,EndY);
BitCode(TopLeftX,TopLeftY,BottomRightX,BottomRightY,BeginingX,BeginingY,BeginingCode);
BitCode(TopLeftX,TopLeftY,BottomRightX,BottomRightY,EndX,EndY,EndCode);
Processing(BeginingCode,EndCode,TopLeftX,TopLeftY,BottomRightX,BottomRightY,h,f,BeginingX,BeginingY,EndX,EndY);
if not(h)
then MessageDlg('Відрізок за межами прямокутника',mtInformation,[mbOK],0)
else if f
then MessageDlg('Відрізок повністю всередині прямокутника',mtInformation,[mbOK],0)
else MessageDlg('Відрізок частково знаходиться в прямокутнику',mtInformation,[mbOK],0);
ImInitial.Canvas.FillRect(Canvas.ClipRect);
ImInitial.Canvas.Rectangle(TopLeftX,TopLeftY,BottomRightX,BottomRightY);
ImInitial.Canvas.MoveTo(BeginingX,BeginingY);
ImInitial.Canvas.LineTo(EndX,EndY);
end;
end;
procedure TForm_main.RGWayDrawClick(Sender: TObject);
begin
case RGWayDraw.ItemIndex of
0: begin
ImInitial.Enabled:=False;
EdTopLeftX.Enabled:=True;
EdTopLeftY.Enabled:=True;
EdBottomRightX.Enabled:=True;
EdBottomRightY.Enabled:=True;
EdBeginingX.Enabled:=True;
EdBeginingY.Enabled:=True;
EdEndx.Enabled:=True;
EdEndY.Enabled:=True;
end;
1: begin
ImInitial.Enabled:=True;
EdTopLeftX.Enabled:=False;
EdTopLeftY.Enabled:=False;
EdBottomRightX.Enabled:=False;
EdBottomRightY.Enabled:=False;
EdBeginingX.Enabled:=False;
EdBeginingY.Enabled:=False;
EdEndx.Enabled:=False;
EdEndY.Enabled:=False;
end;
end;
end;
procedure TForm_main.ImInitialMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if hShape
then
begin
EdBeginingX.Text:=IntToStr(X);
EdBeginingY.Text:=IntToStr(Y);
end
else
begin
EdTopLeftX.Text:=IntToStr(X);
EdTopLeftY.Text:=IntToStr(Y);
end;
DrawMouse:=true;
end;
procedure TForm_main.ImInitialMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if hShape
then
begin
EdEndX.Text:=IntToStr(X);
EdEndY.Text:=IntToStr(Y);
ImInitial.Canvas.MoveTo(StrToInt(EdBeginingX.Text),StrToInt(EdBeginingY.Text));
ImInitial.Canvas.LineTo(X,Y);
hShape:=false;
end
else
begin
EdBottomRightX.Text:=IntToStr(X);
EdBottomRightY.Text:=IntToStr(Y);
ImInitial.Canvas.Rectangle(StrToInt(EdTopLeftX.Text),StrToInt(EdTopLeftY.Text),X,Y);
hShape:=true;
end;
DrawMouse:=False;
end;
procedure TForm_main.ImInitialMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if DrawMouse
then
if hShape
then
begin
ImInitial.Canvas.FillRect(Canvas.ClipRect);
ImInitial.Canvas.Rectangle(StrToInt(EdTopLeftX.Text),StrToInt(EdTopLeftY.Text),StrToInt(EdBottomRightX.Text),StrToInt(EdBottomRightY.Text));
ImInitial.Canvas.MoveTo(StrToInt(EdBeginingX.Text),StrToInt(EdBeginingY.Text));
ImInitial.Canvas.LineTo(X,Y);
end
else
begin
ImInitial.Canvas.FillRect(Canvas.ClipRect);
ImInitial.Canvas.Rectangle(StrToInt(EdTopLeftX.Text),StrToInt(EdTopLeftY.Text),X,Y);
end;
end;
procedure TForm_main.ButClearImageClick(Sender: TObject);
begin
ImInitial.Canvas.FillRect(Canvas.ClipRect);
//ImChanged.Canvas.FillRect(Canvas.ClipRect);
hShape:=false;
end;
procedure TForm_main.nAboutClick(Sender: TObject);
begin
MessageDlg('ДП 2015 Розробив Лісовий Денис',mtInformation,[mbOK],0);
end;
procedure TForm_main.N3Click(Sender: TObject);
begin
if ColorBrush.Execute then
Iminitial.Canvas.Brush.Color:=ColorBrush.Color;
Iminitial.Canvas.FloodFill(1,1,clBlue,fsBorder);
end;
procedure TForm_main.N4Click(Sender: TObject);
begin
if ColorPen.Execute then
Iminitial.Canvas.Pen.Color:=ColorPen.Color;
end;
procedure TForm_main.N5Click(Sender: TObject);
begin
Iminitial.Canvas.Pen.Width:=Iminitial.Canvas.Pen.Width+1;
end;
procedure TForm_main.N6Click(Sender: TObject);
begin
Iminitial.Canvas.Pen.Width:=Iminitial.Canvas.Pen.Width-1;
end;
end.
unit CutLength;
interface
const //Max=320;
LeftBit=$1;
RightBit=$2;
AboveBit=$4;
BelowBit=$8;
procedure Check (ast,bst,cst,dst:string; var a,b,c,d:integer; var h:boolean);
procedure Swapping (var a,b:integer);
procedure BitCode (TopLeftX,TopLeftY,BottomRightX,BottomRightY,X,Y:integer; var Code:integer);
procedure Processing(BeginingCode,EndCode,TopLeftX,TopLeftY,BottomRightX,BottomRightY:integer; var h,f:boolean; var x1,y1,x2,y2:integer);
implementation
uses SysUtils;
procedure Check (ast,bst,cst,dst:string; var a,b,c,d:integer; var h:boolean);
begin
if ((not(TryStrToInt(ast,a))) or (not(TryStrToInt(bst,b))) or (not(TryStrToInt(cst,c))) or (not(TryStrToInt(dst,d))))
then h:=false;
end;
procedure Swapping (var a,b:integer);
var c:integer;
begin
c:=a;
a:=b;
b:=c;
end;
procedure BitCode (TopLeftX,TopLeftY,BottomRightX,BottomRightY,X,Y:integer; var Code:integer);
begin
code:=$0;
if X<TopLeftX
then code:=code or LeftBit;
if X>BottomRightX
then code:=code or RightBit;
if Y<TopLeftY
then code:=code or AboveBit;
if Y>BottomRightY
then code:=code or BelowBit;
end;
procedure Processing(BeginingCode,EndCode:integer; TopLeftX,TopLeftY,BottomRightX,BottomRightY:integer; var h,f:boolean; var x1,y1,x2,y2:integer);
begin
h:=true;
f:=false;
if ((BeginingCode and EndCode)<>0)
then
begin
h:=false;
x1:=0;
y1:=0;
x2:=0;
y2:=0;
end;
if ((BeginingCode or EndCode)=0)
then f:=true;
while (((BeginingCode and EndCode)=0) and ((BeginingCode or EndCode)<>0)) do
begin
if (BeginingCode=0)
then
begin
Swapping(BeginingCode,EndCode);
Swapping(x1,x2);
Swapping(y1,y2);
end;
if((BeginingCode and LeftBit)<>0)
then
begin
y1:=round(y1+(y2-y1)*(TopLeftX-x1)/(x2-x1));
x1:=TopLeftX;
end
else
if ((BeginingCode and AboveBit)<>0)
then
begin
x1:=round(x1+(x2-x1)*(TopLeftY-y1)/(y2-y1));
y1:=TopLeftY;
end
else
if ((BeginingCode and RightBit)<>0)
then
begin
y1:=round(y1+(y2-y1)*(BottomRightX-x1)/(x2-x1));
x1:=BottomRightX;
end
else
if ((BeginingCode and BelowBit)<>0)
then
begin
x1:=round(x1+(x2-x1)*(BottomRightY-y1)/(y2-y1));
y1:=BottomRightY;
end;
BitCode(TopLeftX,TopLeftY,BottomRightX,BottomRightY,x1,y1,BeginingCode);
BitCode(TopLeftX,TopLeftY,BottomRightX,BottomRightY,x2,y2,EndCode);
end;
if ((BeginingCode and EndCode)<>0)
then
begin
h:=false;
x1:=0;
y1:=0;
x2:=0;
y2:=0;
end;
end;
end.
Размещено на Allbest.ru
...Подобные документы
Підстава для створення, найменування та область застосування програмного забезпечення. Дослідження теоретичних аспектів процесу проектування систем автоматизації розробки конструкторської документації. Інструкція по інсталяції програмного продукту.
дипломная работа [2,5 M], добавлен 26.10.2012Особливості системи онлайн-агрегаторів новин, універсальної програмної платформи Microsoft Window. Використання мови програмування C#, створення бази даних. Розробка програмного продукту, алгоритм його створення. Вихідний код та інструкція користувача.
дипломная работа [730,9 K], добавлен 21.01.2016Характеристика об’єкта автоматизації, вимоги до системи, склад та зміст системи. Розробка функціональної схеми програмного продукту. Тестування підпрограми програмного продукту. Розробка бази даних та налаштування ECO компонент в Borland Developer Studio.
практическая работа [1,8 M], добавлен 05.06.2014Об’єктно-орієнтоване програмування мовою С++. Основні принципи об’єктно-орієнтованого програмування. Розробка класів з використанням технології візуального програмування. Розробка класу classProgressBar. Базовий клас font. Методи тестування програми.
курсовая работа [211,3 K], добавлен 19.08.2010Логарифмічна спіраль у координатній площині та її властивості. Математичне розв’язання задачі на основі теоретичного матеріалу з аналітичної геометрії. Створення Windows-додатка в середовищі візуального програмування Delphi. Розробка алгоритмів процедур.
курсовая работа [1,4 M], добавлен 30.10.2009Розробка програми для моделювання роботи алгоритму Дейкстри мовою C# з використанням об’єктно-орієнтованих принципів програмування. Алгоритм побудови робочого поля. Програмування графічного інтерфейсу користувача. Тестування програмного забезпечення.
курсовая работа [991,4 K], добавлен 06.08.2013Концепції об'єктно-орієнтованого програмування. Методи створення класів. Доступ до методів базового класу. Структура даних, функції. Розробка додатку на основі діалогових вікон, програми меню. Засоби розробки програмного забезпечення мовами Java та С++.
курсовая работа [502,5 K], добавлен 01.04.2016Методи первинної обробки даних - згладжування та характеристика сплайнів. Загальна характеристика об'єктно-орієнтованої мови Java. Принципи побудови графічного інтерфейсу. Розробка алгоритму програми та інтерфейсу користувача програмного продукту.
дипломная работа [3,3 M], добавлен 10.10.2013Аналіз сучасного стану технологій програмування. Засоби реалізації об'єктів в мові C++, структура даних і функцій. Розробка програмного продукту - гри "трикутники", з використовуванням моделей, класів і функцій об’єктно-орієнтованого програмування.
курсовая работа [117,8 K], добавлен 14.03.2013Поняття рівнянь регресії та їх практична цінність. Створення програмного продукту на мові об'єктно-орієнтованого програмування з можливістю побудування за експериментальними даними таблиці графіки та обчислювання їх відхилення від експериментальних даних.
курсовая работа [2,5 M], добавлен 24.12.2011Класифікація об'єктно-орієнтованих мов програмування. Розробка алгоритмічного та програмного забезпечення комп'ютерної системи управління процесом випалювання будівельних матеріалів. Тестування програмного забезпечення, оцінка його ефективності.
курсовая работа [1,6 M], добавлен 25.04.2015Розроблення додатка за допомогою об'єктно-орієнтованого візуального проектування Delphi для виконання арифметичних операцій або з використанням меню. Створення інтерфейсу користувача з використанням компонентів SYSTEM і WIN32. Обробка двовимірного масиву.
методичка [326,1 K], добавлен 13.01.2010Реалізація, за допомогою технології Windows Forms, програми обліку даних про волонтерів та подій, на які вони зареєстровані. можливості об'єктно-орієнтованого програмування. Створення класів. Методи, властивості. Використання Multiple Document Interface.
курсовая работа [1,5 M], добавлен 02.12.2015Дослідження та аналіз об’єкту програмування. Основні архітектурні риси JavaScript. Переваги CSS розмітки. Структура HTML-документа. Вимоги до апаратного та програмного забезпечення. Опис програми та її алгоритмів. Оцінка вартості програмного продукту.
дипломная работа [1,0 M], добавлен 01.09.2016Концепції об'єктно-орієнтованого програмування. Спеціалізовані засоби розробки програмного забезпечення мовою Delphi. Загальні питання побудови та використання сучасних систем об’єктно-орієнтованного та візуального проектування програмних засобів.
курсовая работа [201,4 K], добавлен 01.04.2016Дослідження класифікації автоматизованих інформаційних систем. Обґрунтування вибору мови і системи програмування. Програмне забезпечення та опис компонентів середовища. Інтерфейс програмного комплексу. Розрахунок повної собівартості програмного продукту.
дипломная работа [584,1 K], добавлен 26.06.2015Основні принципи об’єктно-орієнтованого програмування. Типові середовища програмування та особливості мови С++. Етапи проектування БД. Розробка програмного забезпечення для реалізації створення бази відеофільмів. Основні положення та моделі БД.
курсовая работа [2,7 M], добавлен 24.03.2011Принципи об'єктно-орієнтованого підходу. Розробка програмного комплексу з використанням цього алгоритму і користувальницьких класів на мові програмування С++. Реалізація простого відкритого успадкування. Тестування працездатності системи класів.
курсовая работа [98,0 K], добавлен 06.05.2014Приклади рішень від провідних компаній-розробників, що працюють у сфері автоматизації роботи з документами. Основні можливості систем електронного документообігу. Вибір програмного забезпечення для створення програмного продукту. Опис програмної системи.
курсовая работа [45,8 K], добавлен 06.06.2011Аналіз навігаційних технологій у сучасних AVL системах. Структура системи і вимоги до апаратного забезпечення, розробка алгоритмів функціонування окремих програмних модулів. Вибір мови програмування і СУБД. Тестовий варіант програмного забезпечення.
дипломная работа [1,8 M], добавлен 17.12.2015