Введение в алгоритм рисования линий

В этой статье мы увидим схему алгоритма рисования линий. Рисование линий на компьютере означает, что экран компьютера делится на две части строк и столбцов. Эти строки и столбцы также называются пикселями. В случае, если нам нужно нарисовать линию на компьютере, прежде всего, мы должны знать, какие пиксели должны быть включены. Линия - это часть прямой, которая бесконечно простирается в противоположном направлении. Линия определяется двумя конечными точками. Его плотность должна быть отделена от длины линии.
Формула для пересечения линии наклона: Y = mx + b
В этой формуле m - это линия наклона, а b - это точка пересечения y с линией. В позициях (x1, y1) и (x2, y2) две конечные точки указаны для отрезка.

Значение наклона m и b можно определить соответственно
• m = y2 - y1 / x2 - x1
• т. Е. M = Δy / Δx

Пример:

Конечные точки линии (0, 0) и (4, 12). Нанесите на график результат для вычисления каждого значения y с шагом от 0 до 4.

Решение:

Итак, у нас есть формула уравнения линии: Y = mx + b
• m = y2 - y1 / x2 - x1
• m = 12 - 0/4 - 0
• м = 3
Затем y-пересечение b связывают y1 и x1 с формулой y = 3 x + b, 0 = 3 (0) + b. Следовательно, b = 0, поэтому формула строки y = 3x.
Цель состоит в том, чтобы как можно быстрее определить следующее местоположение x, y по предыдущему.

Типы алгоритмов рисования линий

Ниже приведены типы алгоритма:

1. Цифровой дифференциальный алгоритм (DDA)

Метод инкрементного преобразования - это алгоритм DDA, который также называется цифровым дифференциальным алгоритмом (DDA). Этот подход характеризуется использованием результатов предыдущего этапа в каждом расчете.

Давайте посмотрим на примеры, приведенные ниже:

Пример № 1

Конечной точкой являются (x1, y1) и (x2, y2)

  • дх = х2 - х1
  • dy = y2 - y1

Итак, теперь мы определим длину строки, если abs (dx)> = abs (dy), то длина = abs (dx), иначе длина = abs (dy)

  • Δx = дх / длина
  • Y = dy / длина
  • X = x1
  • Y = y1

Setpixel (круглый (x), круглый (y));

  • я = 1

в то время как (я <= длина)

  • х = х + Δх;
  • y = y + Δy;

setpixel (round (x), round (y));
я = я + 1
конец пока

Пример № 2

Линия конечных точек (5, 4) и (6, 9) может быть преобразована с помощью DDA.

Решение:
• дх = х2 - х1
• дх = 6 - 5 = 1
• dy = y2 - y1
• dy = 9 - 4

dy = 5
Как тогда dx <dy,
• длина = у2 - у1 = 5
• dx = (x2 - x1) / длина = 1/5 = 0, 2
• dy = (y2-y1) / длина = 5/5 = 1
x1 y1 x2 y2 L dx dy ixy

Результат:

X1

Y1

X2

У2

L

Dx

Dy

я

Икс

Y

Результат

3

2

4

7

5

0, 2

1

0

3, 5

5, 5

3, 5, 5, 5

1

3, 9

1, 5

3.9, 1.5

2

4, 9

3, 5

4.9, 3.5

3

5, 1

7, 5

5.1, 7.5

4

3, 7

4.5

3.7, 4.5

5

4.5

7, 5

4.5, 7.5

Ограничение алгоритма DDA

  • Арифметика для плавающих и округляющих точек является трудоемкой процедурой.
  • Ошибка округления может привести к расстоянию от истинной траектории длинного отрезка по измеренному положению пикселя.

2. Линейный алгоритм Брезенхэма

Алгоритм преобразования Scan является алгоритмом Брезенхэма. Этот алгоритм предлагает главное преимущество использования только целочисленных вычислений.

1. Конечные точки строки и сохраните левую конечную точку в (x1, y1)
2. Для параметра принятия решения получить первое значение Δx, т.е. Dx, Δy, т.е. Dy, 2 Δy и 2 Δx.
3. Инициализировать запуск
4. Инициализировать i = 1 в качестве счетчика,
В противном случае следующая точка для построения графика (xk + 1, yk + 1) и повторите шаг 4 (Δx - 1) раз.
регулировка
Для m> 1 мы можем сказать, что мы увеличиваем x каждый раз, когда увеличиваем y.
После того, как решающая переменная pk будет разрешена, формула очень похожа, только x и y в уравнении будут заменены

Краткое описание алгоритма линии Брезенхэма

Это следующие преимущества алгоритма линии Брезенхэма:
• Быстрый инкрементный алгоритм.
• Используются только целочисленные вычисления.
DDA имеет следующие проблемы по сравнению с алгоритмом DDA:
• Линия с точками может быть далека от ожидаемого накопления ошибок округления.
• Время требуется для операций округления и арифметики с плавающей запятой.

Рекомендуемые статьи

Это было руководство по алгоритму рисования линий. Здесь мы обсудим, что такое алгоритм рисования линий, а также различные примеры. Вы также можете взглянуть на следующие статьи, чтобы узнать больше:

  1. Алгоритмы машинного обучения
  2. Алгоритм SVM
  3. Простая линейная регрессия
  4. Многомерная регрессия
  5. Лучшее сравнение линейной регрессии и логистической регрессии