.RU

Графічні роботи на комп’ютері

МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ

Бердичівський політехнічний коледж

Контрольна робота

з дисципліни “Комп’ютерна графіка”

(варіант №20)

Виконав:

студент групи Пзс-604

Лифар Сергій Олександровчи

Перевірив:

Козик Вадим Юрієвич

м. Бердичів

2009 р.


Зміст

1. Алгоритм побудови ліній

2. Графічна бібліотека DirectX

3. Практичне завдання

Список ви користаної літерат ури


1. Алгоритм побудови ліній

Сформувати растрове зображення можна по-різному. Для того, щоб створити зображення на растровому дисплеї, можна просто скопіювати готовий растр у відеопам'ять. Цей растр може бути отриманий, наприклад, за допомогою сканера або цифрового фотоапарата. А можна створити зображення об'єктів просторових сцен шляхом послідовного рисування окремих простих елементів.

Прості елементи, які можна використати для візуалізації об'єктів, будемо називати графічними примітивами. Фактично, зображення об'єктів складається з геометричних елементів. Тут необхідно зробити таке зауваження. Для того щоб чітко уявляти суть речей, потрібно відрізняти візуалізацію об'єктів від опису, моделі об'єктів. Для опису об'єктів також можуть використовуватися деякі геометричні елементи, однак це — примітиви для опису у базі даних. Зручно, коли набір елементів опису об'єктів у базі той самий, як і набір графічних примітивів візуалізації — це значно спрощує процес візуалізації. Однак, у загальному випадку, елементи опису об'єктів відрізняються від графічних примітивів.

Найпростішим і, водночас, найбільш універсальним растровим графічним примітивом є піксел. Будь-яке растрове зображення можна нарисувати за допомогою пікселах, але це складно й довго. Необхідні складніші елементи, для яких рисуються відразу декілька пікселів.

Розглянемо графічні примітиви, які використовуються найчастіше часто в сучасних графічних системах, — це лінії й фігури.

Алгоритми виводу прямої лінії.

Розглянемо растрові алгоритми для відрізків прямої лінії. Припустимо, що задано координати (х1, у1 - х2, у2) кінців відрізка прямої. Для виводу лінії необхідно зафарбувати в певний колір усі піксели вздовж лінії. Для того щоб зафарбувати кожний піксел, необхідно знати його координати.

Найбільш просто нарисувати відрізок горизонтальної лінії:

for (х = х1; х <= х2; х++)//піксел (x, y1)

Обчислення поточних координат піксела тут виконується як прирощення по х (необхідно, щоб х1 ≤ х2), а вивід піксела забезпечується функцією Піксел( ). Оскільки в мові С, С++ для назви функції не можна використовувати кирилицю, то будемо далі використовувати її як коментар.

Аналогічно рисується відрізок вертикалі:

for (y = y1; х <= y2; y++)//піксел (x1, y)

Як бачимо, в циклі виводу горизонтального та вертикального відрізків виконуються найпростіші операції – прирощення на одиницю, перевірка на "<=", та запис піксела у буфер растра. Тому операція рисування таких відрізків виконується швидко та просто, її використовують як базову операцію для інших операцій, наприклад, в алгоритмах заповнення площини полігонів.

Можна поставити таке запитання: яка лінія рисується швидше — горизонталь чи вертикаль? На перший погляд — однаково швидко. Якщо враховувати тільки математичні аспекти, то швидкість повинна бути однаковою при однаковій довжині відрізків ліній, оскільки в обох випадках виконується однакова кількість однакових операцій. Але, якщо окрім обчислення координат аналізувати також вивід пікселів у конкретний растр, то можуть бути відмінності. У растрових системах рисування піксела зазвичай означає запис одного або декількох бітів у пам'ять, де зберігається растр. І тут вже не однаково — по рядках чи по стовпчиках заповнюється растр. Необхідно враховувати логічну організацію пам'яті комп'ютера, яка зберігає біти або байти растра. Навіть для комп'ютера одного типу (наприклад, персонального комп'ютера) для різних поколінь процесорів та пам'яті швидкість запису по сусідніх адресах може суттєво відрізнятися від швидкості запису по не сусідніх адресах. Особливо це помітно, коли для растра використовується віртуальна пам'ять із зберіганням окремих сторінок на диску та (або) в оперативній пам'яті (RАМ). При роботі графічних програм у середовищі операційної системи Windows часто трапляється так, що горизонталі рисуються швидше вертикалей, тому що в кожній сторінці пам'яті зберігаються сусідні байти — піксели вздовж горизонталі растра. Подібний ефект також мас місце при використанні кеш-пам'яті. А може бути, що RАМ достатньо, і навіть весь растр розміщується в кеші, а швидкості рисування все ж відрізняються. Наприклад, якщо використовується чорно-білий растр у форматі один біт на піксел, то для вертикалі бітова маска однакова для всіх пікселів лінії, а для горизонталі маску потрібно змінювати на кожному кроці. Тут необхідно зауважити, що рисування чорно-білих горизонталей можна суттєво прискорити, якщо записувати відразу вісім сусідніх пікселів — байт у пам'яті.

Горизонталі та вертикалі являють собою окремий випадок ліній. Розглянемо лінію загального виду. Для неї також необхідно обчислювати координати кожного піксела. Відомі декілька методів розрахунків координат точок лінії.

Пряме обчислення координат.

Нехай задані координати кінцевих точок відрізка прямої. Знайдемо координати точки всередині відрізка (мал. 1).


15-let-s-konfiskaciej-polnomochij-novosti-8.html
15-osnovaniya-sposobi-priobreteniyai-1-ponyatie-i-priznaki-gosudarstva-istori-cheskie-usloviya-vozniknoveniya.html
15-prikaz-minfina-rf-ot-01122010-n-157n-dlya-kategorij-povisheniya-kvalifikacii-specialisti-revizionnih-sluzhb.html
15-socialnaya-aktivnost-i-socialnoe-partnerstvo-shkoli-publichnij-otchyot-municipalnogo-obsheobrazovatelnogo-uchrezhdeniya.html
15-svedeniya-o-konsultantah-emitenta-ezhekvartalnijotche-t-emitenta-emissionnih-cennih-bumag.html
15-vneshnyaya-politika-rossijskoj-imperii-vo-vtoroj-polovine-hviii-v-harakter-itogi-bilet-15.html
  • shkola.largereferat.info/nauka-i-krizis-civilizacii-chast-4.html
  • college.largereferat.info/1-arhitektura-i-izobrazitelnoe-iskusstvo-drevnego-egipta-periodizaciya-tipologiya-pamyatnikov-funkcionalnie-i-hudozhestvennie-osobennosti.html
  • turn.largereferat.info/organicheskaya-evolyuciya-i-tvorcheskie-centri-tajnaya-doktrina.html
  • universitet.largereferat.info/statya-37-struktura-i-poryadok-formirovaniya-mestnoj-administracii-reshenie-07-fevralya-2012-goda-poselok-01.html
  • ucheba.largereferat.info/profsoyuzov.html
  • write.largereferat.info/glava-6-meropriyatiya-po-smyagcheniyu-posledstvij-chrezvichajnih-situacij-gosudarstvennij-doklad.html
  • kolledzh.largereferat.info/a-m-churin-prikaz-ot-22-06-2010g-5-449.html
  • institut.largereferat.info/temi-dlya-diskussii-primenenie-metodov-i-modelej-strategicheskogo-upravleniya-pri-reshenii-aktualnih-problem-predpriyatij.html
  • thescience.largereferat.info/iv-prilozheniya-predlagaemie-programma-i-byudzhet-na-dvuhletnij-period-201213gg-dokument-podgotovlen-generalnim-direktorom.html
  • znanie.largereferat.info/babalik-marina-gennadevna-sbornik-statej-studentov-i-aspirantov-po-materialam-nauchnoj-konferencii-vserossijskogo.html
  • thescience.largereferat.info/izbiratelnaya-komissiya-chechenskoj-respubliki.html
  • uchitel.largereferat.info/programma-predusmatrivaet-razlichnie-formi-i-sposobi-proverki-i-kontrolya-znanij-otkritie-i-zakritie-testi-zadaniya-na-ustanovlenie-sootvetstviya-otveti-na-voprosi-cel-izucheniya-literaturi-v-8-klasse-sosh.html
  • writing.largereferat.info/kalligrafiya.html
  • kolledzh.largereferat.info/44-organicheskie-konstrukcionnie-materiali-i-z-sharipov-materialovedenie-rekomendovano-redakcionno-izdatelskim.html
  • lektsiya.largereferat.info/programma-k-vstupitelnim-ispitaniyam-v-magistraturu-po-napravleniyu-organizacionnaya-psihologiya.html
  • znaniya.largereferat.info/programma-uchebnoj-disciplini-metodologiya-i-metodi-psihologo-pedagogicheskih-issledovanij-dlya-specialnosti-050706-pedagogika-i-psihologiya-sostavitel-stranica-2.html
  • uchit.largereferat.info/tablica-14-e-v-zhizhko-i-s-d-chiganovoj.html
  • testyi.largereferat.info/41obem-disciplini-i-vidi-uchebnoj-raboti-1-uchebno-metodicheskij-kompleks-dlya-specialnosti-080502-ekonomika-i-upravlenie-na.html
  • knigi.largereferat.info/senatori-razreshili-sebya-uvolnyat-novosti-9.html
  • occupation.largereferat.info/nikakih-shansov-zheleznaya-dver-betonnie-potolok-i-steni-bili-polnostyu-nepronicaemi.html
  • essay.largereferat.info/enya-one-toy-soldier-efiri-relizi-singli-novosti-charti.html
  • desk.largereferat.info/osnovi-defektologii-chast-pervaya-obshie-voprosi-defektologii-stranica-17.html
  • shpargalka.largereferat.info/uchebno-metodicheskij-kompleks-disciplini-sovremennaya-kultura-i-literatura-stran-izuchaemih-regionov-franciya-velikobritaniya-031202-65-perevod-i-perevodovedenie.html
  • credit.largereferat.info/organizaciya-finansovogo-planirovaniya-zao-altajvitamini.html
  • holiday.largereferat.info/morskie-mlekopitayushie-uchebniki-i-v-drozdova-udivitelnaya-biologiya.html
  • uchitel.largereferat.info/rabochaya-programma-po-discipline-opd-f07-obshaya-himicheskaya-tehnologiya-dlya-specialnosti-280200-tehnologiya-i-oborudovanie-proizvodstva-himicheskih-volokon-i-kompozicionnih-materialov-na-ih-osnove-kurs-3.html
  • letter.largereferat.info/molodezhnaya-politika-sport-i-turizm-itogi-socialno-ekonomicheskogo-razvitiya-respubliki-tatarstan-osnovnie-tendencii.html
  • bukva.largereferat.info/sovremennie-dengi-sushnost-formi-evolyuciya-chast-10.html
  • thesis.largereferat.info/prezentaciya-kursa-stilistika-russkogo-yazika.html
  • turn.largereferat.info/polzovateli-informacii-o-chistih-aktivah-metodicheskij-kompleks-po-discipline-uchet-i-analiz-bankrotstv-dlya-studentov.html
  • uchit.largereferat.info/uchebnij-kurs-obektno-orientirovannoe-programmirovani-e-v-srede-delphi.html
  • spur.largereferat.info/kontrolnie-voprosi-kurs-lekcij-dlya-zaochnogo-otdeleniya-chelyabinsk-2008.html
  • uchit.largereferat.info/struktura-profil-i-specializaciya-ekonomiki-otchet-po-gosudarstvennomu-kontraktu-127-ot-9-iyulya-2008-g.html
  • diploma.largereferat.info/vesllya-v-duhovnj-kultur-ukranskogo-narodu-chast-10.html
  • school.largereferat.info/easttimorconflict-essay-research-paper-easttimorconflictbackgroundthe-invasion-of.html
  • © LargeReferat.info
    Мобильный рефератник - для мобильных людей.