§ 13. Элементы кіравання для работы з графікай
Сайт: | Профильное обучение |
Курс: | Інфарматыка. 11 клас (Павышаны ўзровень) |
Книга: | § 13. Элементы кіравання для работы з графікай |
Напечатано:: | Гость |
Дата: | Суббота, 19 Апрель 2025, 12:39 |
13.1. Элемент кіравання для ўстаўкі малюнка (Image)
Пры стварэнні дадатку нярэдка ўзнікае неабходнасць упрыгожыць яго графічным відарысам. У гэтым выпадку можна выкарыстаць кампанент Image (вiдарыс). На панэлі кампанентаў Additional кампанент відарыс паказаны ў выглядзе Некаторыя ўласцівасці кампанента Image прыведзены ў табліцы (прыклад 13.2). Выкарыстоўваючы ўласцівасць Picture, можна выбраць і загрузіць відарыс на этапе праектавання дадатку. Відарыс можа быць выбраны ў акне рэдактара відарысаў (кнопка Кампанент падтрымлівае ўстаўку малюнкаў у фарматах JPEG, PNG, BMP. Калі патрабуецца апрацоўка відарыса (любыя змяненні малюнка), то малюнак павінен быць захаваны ў фармаце BMP. Для малюнкаў фармату PNG з празрыстым фонам пры загрузцы захоўваецца празрыстасць. Уласцівасць Picture кампанента Image валодае метадамі LoadFromFile і SaveToFile, якія выкарыстоўваюцца для загрузкі і захавання відарыса. Метад LoadFromFile можа быць выкарыстаны для загрузкі відарыса пры адкрыцці дадатку. У гэтым выпадку файл з малюнкам павінен знаходзіцца ў папцы праекта (ці неабходна прапісаць поўны шлях да файла). Прыклад 13.3. Стварыць праект, у якім змясціць фонавы відарыс на форме. Пры націсканні на кнопку па-над фонавым відарысам павінен з'явіцца іншы відарыс. Этапы выканання задання
|
Прыклад 13.1. Кампанент Image (відарыс) на форме: Прыклад 13.2. Некаторыя ўласцівасці кампанента Image (відарыс).
Прыклад 13.3. Форма на этапе канструявання: Апрацоўшчык падзеі OnClick для Button1.
Дадатак у час работы: Да націскання на кнопку: Пасля націскання на кнопку: Паколькі гарызантальнае становішча мядзведзя задаецца выпадковым чынам, то пры кожным націсканні на кнопку мядзведзь будзе прарысаваны ў новым месцы. |
13.2. Метады канвы
Некаторыя кампаненты ў CBuilder, такія як форма, кампанент Image і інш., маюць уласцівасць Canvas (канва, палатно). Канва ўяўляе сабой вобласць, на якой можна маляваць або выводзіць на яе растравыя малюнкi. Сістэма каардынатаў у канвы такая ж, як і для любога кампанента ў CBuilder — пункт з каардынатамі (0, 0) размешчаны ў верхнім левым вуглу, вось ОУ накіравана ўніз. Кожны пункт канвы мае каардынаты X і Y. Каардынаты вымяраюцца ў пікселях. Найважнейшая ўласцівасць пікселя — яго колер. Колер пікселя канвы вызначаецца значэннем уласцівасці Pixels. Гэта ўласцівасць уяўляе сабой двухмерны масіў, у якім захоўваецца колер кожнага пікселя. Для задання колеру ў CBuilder можна скарыстацца некалькімі спосабамі (прыклад 13.4). Лікавыя значэння колеру (спосабы 2 — 4) павінны быць ператвораныя да тыпу TColor. Клас TCanvas змяшчае вялікую колькасць уласцівасцей і метадаў, якія дазваляюць будаваць малюнкi. Многія з метадаў канвы аналагічныя працэдурам, якія выкарыстоўваліся ў бібліятэкі GraphABC асяроддзя праграміравання PascalABC.Net. Апісанне гэтых метадаў прыведзена ў Дадатку. Разгледзім метад FloodFill, які дазваляе вырабляць заліванне абмежаванай вобласці на канве. Першыя два параметры метаду (x, y) — каардынаты пункту, якi ляжыць унутры вобласці. Мяжа вобласці залівання вызначаецца спалучэннем параметраў Color і FillStyle. Калі для параметру Fillstyle вызначыць значэнне fsBorder, то будзе зафарбаваная вобласць, абмежаваная колерам Color (прыклад 13.5). Калі для параметру Fillstyle вызначыць значэнне fsSurface, то колер Color заменіцца, а іншыя колеры ўнутры вобласці застануцца нязменнымі (прыклад 13.6). Колер і стыль, якім будзе вырабляцца заліўка, вызначаюцца ўласцівасцямі Brush. Прыклад 13.7. Стварыць праект «Раскраска». У праекце рэалізаваць наступныя магчымасці: загрузка графічнага файла, заліўка абмежаванай вобласці па кліку мышы, захаванне змененага файла. Этапы выканання задання
7.1.Падзея OnMouseDown вяртае каардынаты пункту, у якім карыстальнік клікнуў мышшу. Гэтыя каардынаты можна выкарыстоўваць для метаду FloodFill. 7.2. Выбар колеру залівання павінен здзяйсняцца з выкарыстаннем стандартнага дыялогу ColorDialog. Для праверкі работы праекта неабходна загадзя падрыхтаваць малюнак, які можна будзе размалёўваць. Гэты малюнак павінен быць захаваны ў фармаце BMP. Контуры малюнка лепш за ўсё намаляваць чорным колерам. Малюнак для размалёўкі змясціць у папку \Win32\Debug. У гэтай папцы захоўваецца адкампіляваны файл праекта. Калі ў падзеі OnFormCreate прапісаць каманды, якія вызначаюць гэтую папку як бягучую (гл. прыклад 7.12), то пры націску на кнопку Загрузить файл, малюнак будзе бачны адразу. Малюнак захоўваецца ў фармаце BMP. Калі ва ўласцівасцях кампанента SavePictureDialog пашырэнне не прапісана, то пры захаванні файла, карыстальнік павінен дапісаць яго самастойна. Выкарыстоўваючы метады канвы (адрэзкі, прамавугольнікі, авалы і інш.), можна дапоўніць малюнак, захаваны ў фармаце BMP. Прыклад 13.8. Дапоўніць праект «Раскраска». Дадаць кнопкі «Нарисовать трубу» і «Облако». Рэалізаваць адпаведныя апрацоўшчыкі падзей. Этапы выканання задання
5. Напісаць апрацоўшчык падзеі OnClick для кампанента Button4. 5.1. Для малявання воблака дастаткова намаляваць тры перасякальных авала. |
Прыклад 13.4. Спосабы задання колеру ў CBuilder:
Прыклад 13.5. Заліўка чырвоным колерам вобласці, абмежаванай лініяй чорнага колеру:
Прыклад 13.6. Перафарбоўка белага колеру ў чырвоны:
Прыклад 13.7. Форма на этапе канструявання: Апрацоўшчык падзеі OnClick для Button1.
Апрацоўшчык падзеі OnClick для Button2.
Апрацоўшчык падзеі OnMouseDown для кампанента Image1.
Дадатак у час працы: Прыклад 13.8. Форма на этапе канструявання: Апрацоўшчык падзеі OnClick для Button3.
Апрацоўшчык падзеі OnClick для Button4.
Дадатак у час працы: |
Пытанні да параграфа
![]() |
1. Які кампанент выкарыстоўваецца для размяшчэння малюнкаў? 2. Якая ўласцівасць дазваляе загрузіць гатовы малюнак у кампанент Image? 3. З дапамогай якой уласцівасці можна ўстанавіць празрысты фон для малюнка? 4. Што такое канва? 5. Як задаць колер пікселя канвы? 6. Як працуе метад FloodFill? 7. У чым розніца ў выкарыстаннi параметраў fsSurface i fsBorder для метаду FloodFill? |
Практыкаваннi
1. Дадайце ў праект з прыкладу 13.3. яшчэ адну жывёлу (напрыклад, вавёрку). Для размяшчэння вавёркі трэба дадаць яшчэ адну кнопку. Месцазнаходжанне вызначыць выпадковым чынам у верхавіне якога-небудзь дрэва.
2. Дадайце ў праект 13.7 наступнае:
- Праверце, як будзе працаваць праграма, калі ў падзеях для Button3 і Button4 прыбраць у канцы аднаўленне стылю Brush і Pen.
- Дадайце яшчэ адну кнопку, пры націску на якую на малюнку з'явіцца які-небудзь элемент (ганак, аканіцы, дрэва і г. д.). Напішыце адпаведны апрацоўшчык падзеі. Для вызначэння каардынатаў пікселяў можна адкрыць малюнак у Paint.
3. Прыдумайце свой уласны сюжэт рэалізацыі размалёўкі па аналогіі з праектам 13.7.