КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Рисование по пикселям
Рисовать на канве можно разными способами. Первый вариант — рисование по пикселям. Для этого используется свойство канвы Pixels. Это свойство представляет собой двумерный массив, который отвечает за цвета канвы. Например, Canvas.Pixels[10,20] соответствует цвету пикселя, 10-го слева и 20-го сверху. С массивом пикселей можно обращаться как с любым свойством: изменять цвет, задавая пикселю новое значение, или определять его цвет по хранящемуся в нем значению. Например, Canvas.Pixels[10,20]:= 0 или Canvas.PixelsflO,20]:= clBlack — это задание пикселю черного цвета. Давайте попробуем нарисовать график некоторой функции F(X) на канве компонента Imagel, если известен диапазон ее изменения Ymax и Ymin и диапазон изменения аргумента Xmin и Хmах. Это можно сделать такой процедурой: var X,Y:real; // координаты функции РХ,PY:longint; // координаты пикселей begin for PX:=0 to Imagel.Width do begin // X — координата, соответствующая пикселю с координатой РХ X:=Xmin+PX*(Xmax-Xmin)/Imagel.Width; Y:=F(X); // PY — координата пикселя, соответствующая координате Y PY:=trunc(Imagel.Height-(Y-Ymin)*Imagel.Height/(Ymax-Ymin)); (Устанавливается черный цвет выбранного пикселя (0 яркости)} Imagel.Canvas.Pixels[PX,PY]:= 0; end; end; В этом коде вводятся переменные X и Y, являющиеся значениями аргумента и функции, а также переменные РХ и PY, являющиеся координатами пикселей, соответствующими X и Y. Сама процедура состоит из цикла по всем значениям горизонтальной координаты пикселей РХ компонента Imagel. Сначала выбранное значение РХ пересчитывается в соответствующее значение X. Затем производится вызов функции F(X) и определяется ее значение Y. Это значение пересчитывается в вертикальную координату пикселя PY. И в заключение цвет пикселя с координатами (РХ, PY) устанавливается черным. Попробуйте создать соответствующее приложение и посмотреть, как оно работает. Пусть для простоты мы будем ориентироваться на функцию sin(X), для которой Xmin = 0, Хmах = 4р (2 периода в радианах), Ymin = -1, Ymax — 1. Начните новый проект, поместите на него компонент Image и кнопку с надписью «Нарисовать», в обработчик события OnClick которой запишите код, аналогичный приведенному выше, но конкретизирующий функцию: // координаты функции // координаты пикселей var X,Y:real; РХ, PY:longint; begin for PX:=0 to Imagel.Width do begin // X — координата, соответствующая пикселю с координатой РХ X:= РХ * 4 * Pi / Imagel.Width; Y:= Sin(X); // PY — координата пикселя, соответствующая координате Y PY:=trunc(Imagel.Height-(Y+l)*Imagel.Height/2); {Устанавливается черный цвет выбранного пикселя (0 яркости)} Imagel.Canvas.Pixels[PX,PY]:= 0; end; end; Откомпилируйте ваш проект, сохраните его и выполните.
Дата добавления: 2015-03-29; Просмотров: 785; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |