Рисует точку на экране в заданном месте заданным цветом.
Описание: PutPixel (x, y, цвет).
Примечания: Выводит точку на экране с координатами (x, y) заданным цветом (параметр "цвет").
Пример 1:
Examp_2;
Данная программа рисует линию из точек. Поменяйте шаг выполнения цикла – изменится число точек в линии. При шаге, равном 1, линия будет сплошной.
Пример 2:
Нарисовать сетку, заполняющую прямоугольную область, центр которой совпадает с центром экрана. Рисование выполнить "по точкам", т.е. высвечивая соответствующие пиксели. Рассмотреть два случая:
а) стороны прямоугольной области параллельны сторонам экрана;
б) прямоугольная область повернута на некоторый угол.
Вариант а).
Рисуем сетку так, чтобы каждая линия выходила на полшага за крайнюю перпендикулярную линию. Нам будет удобнее считать, что число шагов сетки по каждой оси – четное. Пусть Step – шаг сетки, nx, ny – половина числа шагов по осям X, Y. Размах (половина длины) горизонтали составляет
rx=Step*nx+Step div 2
и, аналогично, размах по вертикали:
ry=Step*ny+Step div 2.
Начнем с проведения горизонталей. Делать это будем сверху вниз. Пусть yg – центральная координата по оси Y очередной горизонтали. Тогда для ее проведения надо нарисовать заданным цветом точки с центральными координатами (X, yg), где X пробегает все значения от -ry до ry с шагом 1. Разумеется, перед выводом точки на экран, ее центральные координаты надо перевести в экранные. Далее находим новое значение центральной координаты по оси Y очередной горизонтали: Yg=Yg-Step и повторяем этот процесс. Его надо выполнить 2*Ny+1 раз. Удобно, чтобы переменная цикла пробегала значения от Ny до –Ny с шагом 1.
Осталось указать начальное значение Yg. Понятно, что оно составляет Step*Ny.
Вертикальные линии проводятся аналогично и мы не будем на этом останавливаться. Соответствующая программа:
Program Examp_3;
Вариант б).
Данная задача иллюстрирует известное положение: хотя все координатные системы равноправны, но для конкретной задачи некоторая координатная система может оказаться удобнее других. В нашем случае наиболее удобной является координатная система, оси которой параллельны сторонам прямоугольной области, а начало по прежнему находится в ее центре. Эту систему назовем "местной". Тогда методика, изложенная в предыдущей задаче, полностью применима и в данном случае. Единственное, что надо учесть, - перед выводом точки на экран ее местные координаты надо перевести в центральные, а их, затем, в экранные. Остается получить формулы перехода от местных координат X, Y к центральным Xc, Yc. Центральная координатная система получается из местной поворотом на заданный угол альфа по часовой стрелке (см. рисунок).
Пусть R – радиус-вектор произвольной точки (он одинаков в обеих системах), φ – угол наклона радиуса-вектора к местной оси Х. Тогда центральные координаты выражаются по формулам:
Xc=R*cos(φ+α);
Yc=R*sin(φ).
Если вспомнить формулы для косинуса и синуса суммы углов и учесть, что