Introdução ao algoritmo de desenho de linha
Neste artigo, veremos um esboço do algoritmo de desenho de linha. O desenho de linhas no computador significa que a tela do computador está dividida em duas partes de linhas e colunas. Essas linhas e colunas também são conhecidas como pixels. Caso tenhamos que desenhar uma linha no computador, precisamos saber em quais pixels devem estar. Uma linha é parte de uma linha reta que se estende na direção oposta indefinidamente. A linha é definida por dois pontos finais. Sua densidade deve ser separada do comprimento da linha.
A fórmula para uma interceptação de reta da inclinação: Y = mx + b
Nesta fórmula, m é uma linha da inclinação eb é intercepto de y na linha. Nas posições (x1, y1) e (x2, y2), dois pontos de extremidade são especificados para o segmento de linha.
O valor da inclinação m e b pode ser determinado de acordo
• m = y2 - y1 / x2 - x1
• ie M = Δy / Δx
Exemplo:
Os pontos finais da linha são (0, 0) e (4, 12). Plote o resultado para calcular cada valor de y como as etapas x de 0 a 4.
Solução:
Portanto, temos uma fórmula da equação da reta: Y = mx + b
• m = y2 - y1 / x2 - x1
• m = 12 - 0/4 - 0
• m = 3
A interceptação em y b é então encontrada ligando y1 e x1 à fórmula y = 3 x + b, 0 = 3 (0) + b. Portanto, b = 0, então a fórmula da linha y = 3x.
O objetivo é determinar o próximo local x, y o mais rápido possível pelo anterior.
Tipos de algoritmo de desenho de linha
Abaixo estão os tipos do algoritmo:
1. Algoritmo Diferencial Digital (DDA)
Um método de conversão incremental é um algoritmo DDA e também chamado de algoritmo diferencial digital (DDA). Essa abordagem é caracterizada pelo uso dos resultados da etapa anterior em cada cálculo.
Vejamos os exemplos abaixo:
Exemplo 1
A linha do ponto final é (x1, y1) e (x2, y2)
- dx = x2 - x1
- dy = y2 - y1
então, agora vamos determinar o comprimento da linha se abs (dx)> = abs (dy) então length = abs (dx) else length = abs (dy)
- Δx = dx / comprimento
- Δy = dy / comprimento
- X = x1
- Y = y1
Setpixel (redondo (x), redondo (y));
- i = 1
while (i <= comprimento)
- x = x + Δx;
- y = y + A;
setpixel (arredondado (x), arredondado (y));
i = i + 1
terminar enquanto
Exemplo 2
Uma linha de pontos finais (5, 4) e (6, 9) pode ser convertida com o DDA.
Solução:
• dx = x2 - x1
• dx = 6 - 5 = 1
• dy = y2 - y1
• dy = 9 - 4
dy = 5
Como, dx <dy então,
• comprimento = y2 - y1 = 5
• dx = (x2 - x1) / comprimento = 1/5 = 0, 2
• dy = (y2-y1) / comprimento = 5/5 = 1
x1 y1 x2 y2 L dx dy ixy
Resultado:
X1 |
Y1 |
X2 |
Y2 |
eu |
Dx |
Dy |
Eu |
X |
Y |
Resultado |
3 |
2 |
4 |
7 |
5 |
.2 |
1 |
0 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 |
Limitação do algoritmo DDA
- A aritmética para pontos flutuantes e arredondados são procedimentos demorados.
- Um erro de arredondamento pode levar a uma distância do caminho real do segmento de linha longa pela localização do pixel medido.
2. O algoritmo da linha de Bresenham
O algoritmo de conversão de digitalização é o algoritmo de Bresenham. Esse algoritmo oferece a principal vantagem de usar apenas cálculos inteiros.
1. Pontos finais da linha e armazene o ponto final esquerdo em (x1, y1)
2. Para o parâmetro de decisão obter o primeiro valor Δx, ou seja, Dx, Δy, ou seja, Dy, 2 Δy e 2 Δx.
3. Inicialize o início
4. Inicialize i = 1 como um contador,
Caso contrário, o próximo ponto a ser plotado é (xk + 1, yk + 1) e repita a etapa 4 (Δx - 1) vezes.
Ajustamento
Para m> 1, podemos dizer se aumentamos x toda vez que aumentamos y.
Depois que a variável de decisão pk for resolvida, a fórmula será muito semelhante, apenas os xey na equação serão substituídos.
Resumo do algoritmo de linha de Bresenham
Essas são as seguintes vantagens do algoritmo de linha Bresenham:
• Um algoritmo incremental rápido.
• Isso usa apenas cálculos inteiros.
O DDA tem os seguintes problemas quando comparado ao algoritmo DDA:
• A linha pixelizada pode estar distante da acumulação esperada de erros de arredondamento.
• É necessário tempo para operações de arredondamento e aritmética de pontos flutuantes.
Artigos recomendados
Este foi um guia para o algoritmo de desenho de linha. Aqui discutimos o que é o algoritmo de desenho de linha, juntamente com os vários exemplos. Você também pode dar uma olhada nos seguintes artigos para saber mais:
- Algoritmos de aprendizado de máquina
- Algoritmo SVM
- Regressão linear simples
- Regressão multivariada
- Top Comparação de Regressão Linear vs Regressão Logística