русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Точки на экране


Дата добавления: 2015-06-12; просмотров: 1005; Нарушение авторских прав


 

Процедура PutPixel

Рисует точку на экране в заданном месте заданным цветом.

Описание: 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(φ).

Если вспомнить формулы для косинуса и синуса суммы углов и учесть, что

X=R*cos(φ);

Y=R*sin(φ),

то получим интересующие нас формулы:

Xc=X*cos(α)-Y*sin(α);

Yc=X*sin(α)+y*cos(α).

Приводим программу рисования наклонной сетки:

Program Examp_4;

 



<== предыдущая лекция | следующая лекция ==>
И закраски. | Линии и прямоугольники


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.407 сек.