Увод у алгоритам цртања линија

У овом ћемо чланку видјети структуру алгоритма цртања линија. Цртање линија на рачунару значи да се екран рачунара дели на два дела реда и ступаца. Ти редови и ступови познати су и као пиксели. У случају да морамо да нацртамо линију на рачунару, пре свега морамо знати на којим пикселима треба да се налази. Линија је део праве линије која се протеже у супротном смеру у недоглед. Линија је дефинисана са две крајње тачке. Његова густина треба да буде одвојена од дужине линије.
Формула за пресретање линија косине: Y = mx + b
У овој формули м је линија нагиба, а б пресјек и у линији. У позицијама (к1, и1) и (к2, и2) за линијски сегмент су наведене две крајње тачке.

Вриједност нагиба м и б може се одредити према томе
• м = и2 - и1 / к2 - к1
• тј. М = Δи / Δк

Пример:

Крајње тачке линије су (0, 0) и (4, 12). Нацртајте резултат да бисте израчунали сваку вредност и као к корака од 0 до 4.

Решење:

Дакле, имамо формулу једначине правца: Y = mx + b
• м = и2 - и1 / к2 - к1
• м = 12 - 0/4 - 0
• м = 3
И пресретање б се затим проналази повезивањем и1 и к1 са и = 3 к + б формулом, 0 = 3 (0) + б. Стога је б = 0, па је и = 3к линија формуле.
Циљ је одредити следећу локацију к, и што је брже могуће од претходне.

Врсте алгоритама цртања линија

Испод су дате врсте алгоритма:

1. Дигитални диференцијални алгоритам (ДДА)

Метода инкременталне претворбе је ДДА алгоритам, а називали смо је и дигитални диференцијални алгоритам (ДДА). Овај приступ карактерише употреба резултата из претходне фазе у сваком прорачуну.

Погледајмо следеће примере:

Пример # 1

Крајња тачка линије је (к1, и1) и (к2, и2)

  • дк = к2 - к1
  • ди = и2 - и1

Дакле, сада ћемо одредити дужину линије ако је абс (дк)> = абс (ди), а затим дужина = абс (дк), иначе дужина = абс (ди)

  • Δк = дк / дужина
  • Δи = ди / дужина
  • Кс = к1
  • И = и1

Сетпикел (округли (к), округли (и));

  • и = 1

док је (и <= дужина)

  • к = к + Δк;
  • и = и + Δи;

сетпикел (округли (к), округли (и));
и = и + 1
крај док

Пример бр. 2

Линија крајњих тачака (5, 4) и (6, 9) може се претворити помоћу ДДА.

Решење:
• дк = к2 - к1
• дк = 6 - 5 = 1
• ди = и2 - и1
• ди = 9 - 4

ди = 5
Као, дк <ди,
• дужина = и2 - и1 = 5
• дк = (к2 - к1) / дужина = 1/5 = 0, 2
• ди = (и2-и1) / дужина = 5/5 = 1
к1 и1 к2 и2 Л дк ди ики

Резултат:

Кс1

И1

Кс2

И2

Л

Дк

Ди

Ја

Икс

И

Резултат

3

2

4

7

5

.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

Ограничење алгоритма ДДА

  • Аритметика лебдећих и заобљених тачака је много времена.
  • Погрешка заокруживања може довести до удаљености од праве стазе пута дуге линије према локацији измерених пиксела.

2. Алгоритам Бресенхам линије

Алгоритам за конверзију скенирања је Бресенхам-алгоритам. Овај алгоритам нуди главну предност употребе само целих бројева.

1. Крајње тачке реда и похраните леву крајњу тачку у (к1, и1)
2. Да би параметар одлуке добио прву вредност Δк, тј. Дк, Δи тј. Ди, 2 Δи и 2 Δк.
3. Иницијализирајте покретање
4. Иницијализирајте и = 1 као бројач,
У супротном, следећа тачка за цртање је (кк + 1, ик + 1) и поновите корак 4 (Δк - 1) пута.
Подешавање
За м> 1, можемо рећи ако сваки пут повећавамо к сваки пут повећамо и.
Након што се варијабла пк разреши, формула је врло слична, заменити ће се само к и и у једначини.

Бресенхам Лине Алгоритхм Резиме

Ово су следеће предности алгоритма Бресенхам линије:
• Брзи инкрементални алгоритам.
• Овде се користе само цели бројеви.
ДДА има следеће проблеме у поређењу са алгоритмом ДДА:
• Пикселована линија може бити удаљена од очекиваног накупљања грешака у заокруживању.
• Потребно је време за операције заокруживања и аритметику с помичним тачкама.

Препоручени чланци

Ово је водич за Алгоритам цртања линија. Овде смо расправљали о алгоритму цртања линија заједно са разним примерима. Можда ћете такође погледати следеће чланке да бисте сазнали више -

  1. Алгоритми машинског учења
  2. СВМ алгоритам
  3. Једноставна линеарна регресија
  4. Мултиваријантна регресија
  5. Најбоље упоређивање линеарне регресије и логистичке регресије

Категорија: