Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Тестування створеної компонентиСодержание книги
Поиск на нашем сайте
Для тестування нової компоненти і її властивостей, потрібно створити новий проект і помістити на форму дану компоненту. Щоб перевірити властивість обрахунку натиснень ClickCount, в обробнику натиснення нової кнопки потрібно написати процедуру виведення кількості натиснень у підказку (властивість Hint). Питання для самоконтролю:
Лабораторна робота №11 Тема: Робота з графікою у Delphi. Мета роботи: вивчити можливості побудови графіків за допомогою компоненту відображення графічної інформації. Написати і налагодити програму побудови на екрані графіка заданої функції. Розробка проекту «Побудова графіка функції» Завдання. Створити програму, результатом роботи якої буде побудова на екрані графіка функції f(x) = 2sin x·е5 на інтервалі [0; 25]. Аналіз проекту. Для побудови графіків функцій використовується властивість Pixels об'єкта Canvas. Наприклад оператор Forma1.Canvas.Pixels[10,10]:=clRed; виводить на канву точку з координатами (10,10) червоного кольору. Розмір графічної площини форми визначається значеннями властивостей ClientWiclth та ClientHeight. Лівій верхній точці робочої області відповідає елемент Pixels[0,0], а правій нижній – Pixels[ClientWidth-1, ClientHeight-1]. Розглянемо порядок побудови графіка на канві форми. Як правило, графік будується на основі формули. Межі діапазону зміни аргументу функції є вхідним даними. Діапазон зміни значень функції можна обчислити. Виходячи з цих даних, можна визначити масштаб, що дасть змогу побудувати графік таким чином, щоб він займав усю область форми. Наприклад, якщо деяка функція f(х) може набувати значення від 0 до 1000 і для виведення її графіка використовується область заввишки 250 пікселів, то масштаб вісі Оу обчислюється за формулою: m=250/1000. Отже, значенню f(х)=1000 відповідатиме точка області з координатою у=0, оскільки y=250-f(x)·m= 250 -1000·(250/1000). Значенню f(х)=70 відповідатиме точка з координатою y=233, то у=250–70·(250/1000) (тут значення заокруглене через те, що координата може бути тільки цілим числом). ХІД РОБОТИ Алгоритм розробки проекту 1. Створити папку С:\Delphi\lab_11. 2. Створити новий проект. 3. У програмному модулі в розділі Implementation (розділ опису процедур і функцій модуля) після директиви {$R *.dfm} створити процедуру GrOfFunc – побудова графіка функції. В цій процедурі спочатку обчислюється максимальне (у2) та мінімальне (у1) значення функції на відрізку [х1;х2], а потім, враховуючи значення висоти та ширини області виведення графіка, обчислюється масштаб для осей Ox (mx) та Оу (mу): procedure groffunc; var x,y, {аргумент та значення функції} x1,y1,{[х1; х2] – відрізок, на якому будується функція} x2,y2,{[у1; у2 ] – інтервал значень функції} dx,{приріст функції} mx,my: real; {масштаб} l,b,{лівий нижній кут області виведення графіка} h,w,{висота та ширина області виведення графіка} x0,y0: integer; {точка початку координат} function f(x:real):real; Begin f:=2*sin(x)*exp(x/5); end; Begin l:=10; b:=form1.ClientHeight-20; h:=Form1.ClientHeight-40; w:=Form1.ClientWidth-40; x1:=0; x2:=25; dx:=0.001; y1:=f(x1); y2:=f(x2); x:=x1; Repeat y:=f(x); if y<y1 then y1:=y; if y>y2 then y2:=y; x:=x+dx; until (x>=x2); my:=h/abs(y2-y1); mx:=w/abs(x2-x1);{масштаби по координатних вісях}; x0:=l; y0:=b-abs(round(y1*my)); with Form1.Canvas do Begin moveto(l,b); lineto(l,b-h-13); moveto(x0,y0); lineto(x0+w,y0); textout (l+5,b-h,floattostrf(y2,ffgeneral,6,3)); textout (l+5,b,floattostrf(y1,ffgeneral,6,3)); x:=x1; Repeat y:=f(x); Form1.Canvas.Pixels[x0+round(x*mx),y0-round(y*my)]:=clblack; x:=x+dx; until (x>=x2); end; end; 4. Для виклику процедури GrOfFunc створити процедуру обробки події OnPaint для об'єкта Forml. Ця процедура забезпечить накреслення графіка після відкриття форми в результаті запуску програми. 5. Для накреслення графіка після зміни розмірів форми створити процедуру обробки цієї події OnCanResize для об'єкта Forml. У цій процедурі виконати очистку поля форми, а потім викликати процедуру GrOfFunc для побудови графіка відповідно до нових розмірів форми: with Forml do Canvas.FillRect(Rect(0,0, ClientWidth, clientHeight)); GrOfFunc; Лістинг програми: unit Unitl; Interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,Forms, Dialogs; Type Private Public end; var Forml: TForml; implementation {$R *.dfm} procedure GrOfFunc; {тут розміщається текст процедури GrOfFunc – див. вище} end; procedure TForml.FormPaint(Sender: TObject); Begin GrOfFunc; {виклик процедури GrOfFunc } end; procedure TForml.FormCanResize(Sender: TObject; var NewWidth,NewHeight: Integer; var Resize: Boolean); Begin {поновлення побудови на формі нового розміру} with forml do Canvas.FillRect(rect 0,0,ClientWidth,clientHeight)); GrOfFunc; end; end.
Питання для самоконтролю: 1. Яка властивість Delphi відповідає поверхні обєкту для того, щоб вивести на поверхню графічний елемент? 2. Які є методи властивості Canvas? 3. Який метод властивості Canvas використовується для малювання точок ліній, контурів геометричних фігур тощо? 4. Яка властивість методу Pen задає режим відображення? 5. Яка властивість методу Pen задає товщину лінії? 6. Яка властивість методу Brush задає стиль заповнення замкненої області? 7. Який використовується метод для виведення тексту на поверхню графічного об'єкту? 8. Який метод використовується для малювання лінії? 9. Який метод малює ламану лінію? 10. Яка властивість містить інформацію про колір кожної точки графічної поверхні?
Лабораторна робота №12 Тема: Створення програми з використанням мультимедіа. Мета роботи: вивчити можливості мультимедіа в Delphi. Написати і налагодити програму побудови на екрані.
|
||||
Последнее изменение этой страницы: 2016-04-18; просмотров: 314; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.14.254.103 (0.006 с.) |