Сравнительные характеристики трёх наиболее эффективных алгоритмов рисования отрезка — страница 8
иллюстрируется рис. 1.3, где отрезок с тангенсом угла наклона 3/8 сначала проходит через точку растра (0, 0) и последовательно пересекает три пиксела. Также иллюстрируется вычисление ошибки при представлении отрезка дискретными пикселами. Так как желательно проверять только знак ошибки, то она первоначально устанавливается равной —1/2. Таким образом, если угловой коэффициент отрезка больше или равен 1/2, то величина ошибки в следующей точке растра с координатами (1,0) может быть вычислена как е = е + m где m — угловой коэффициент. В нашем случае при начальном значении ошибки —1/2 е = -1/2+ 3/8 = -1/8 Так как е отрицательно, отрезок пройдет ниже середины пиксела. Следовательно, пиксел на том же самом горизонтальном уровне лучше аппроксимирует положение отрезка, поэтому у не увеличивается. Аналогично вычисляем ошибку е = -1/8 + 3/8 = 1/4 в следующей точке растра (2, 0). Теперь е положительно, а значит, отрезок пройдет выше средней точки. Растровый элемент (2, 1) со следующей по величине координатой у лучше аппроксимирует положение отрезка. Следовательно, у увеличивается на единицу. Прежде чем рассматривать следующий пиксел, необходимо откорректировать ошибку вычитанием из нее единицы. Имеем е = 1/4- 1 = -3/4 Заметим, что пересечение вертикальной прямой х = 2 с заданным отрезком лежит на 1/4 ниже прямой y = 1. Если же перенести отрезок 1/2 вниз, мы получим как раз величину -3/4. Продолжение вычислений для следующего пиксела дает e = - 3/4 + 3/8 = - 3/8 Так как e отрицательно, то .у не увеличивается. Из всего сказанного следует, что ошибка — это интервал, отсекаемый по оси у рассматриваемым отрезком в каждом растровом элементе (относительно —1/2). 3. Описание программы 3.1. Описание интерфейса Реализация каждого метода генерации отрезков проводилась в среде объектно-ориентированного программирования Delphi 7. Поставлена задача запрограммировать алгоритмы генерации отрезков, создать форму для ввода данных и вывода результата. Для каждого из трех алгоритмов создается окно приложения (рис. 1.4). Рис. 1.4. Внешний вид окна приложения В итоге создано приложение Windows. На форме расположены: 1. Три поля, на которых будет отображаться результат построения отрезков для каждого метода в отдельности. 2. Поле «Ввод количества линий» служит для ввода количества линий, которые будут сгенерированы генератором случайных чисел. 3. Три поля «время», на которых отображается время построения отрезков для каждого метода в отдельности. Рис.3.2 Результат работы приложения 3.2. Описание логической структуры В проект добавлены
Похожие работы
- Доклады
- Рефераты
- Рефераты
- Рефераты
- Контрольные