Увод у алгоритам цртања линија
У овом ћемо чланку видјети структуру алгоритма цртања линија. Цртање линија на рачунару значи да се екран рачунара дели на два дела реда и ступаца. Ти редови и ступови познати су и као пиксели. У случају да морамо да нацртамо линију на рачунару, пре свега морамо знати на којим пикселима треба да се налази. Линија је део праве линије која се протеже у супротном смеру у недоглед. Линија је дефинисана са две крајње тачке. Његова густина треба да буде одвојена од дужине линије.
Формула за пресретање линија косине: 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, можемо рећи ако сваки пут повећавамо к сваки пут повећамо и.
Након што се варијабла пк разреши, формула је врло слична, заменити ће се само к и и у једначини.
Бресенхам Лине Алгоритхм Резиме
Ово су следеће предности алгоритма Бресенхам линије:
• Брзи инкрементални алгоритам.
• Овде се користе само цели бројеви.
ДДА има следеће проблеме у поређењу са алгоритмом ДДА:
• Пикселована линија може бити удаљена од очекиваног накупљања грешака у заокруживању.
• Потребно је време за операције заокруживања и аритметику с помичним тачкама.
Препоручени чланци
Ово је водич за Алгоритам цртања линија. Овде смо расправљали о алгоритму цртања линија заједно са разним примерима. Можда ћете такође погледати следеће чланке да бисте сазнали више -
- Алгоритми машинског учења
- СВМ алгоритам
- Једноставна линеарна регресија
- Мултиваријантна регресија
- Најбоље упоређивање линеарне регресије и логистичке регресије