Как нарисовать линию (наклонная линия)?
Как нарисовать неортогональную линию?
Если у нас есть ортогональная линия, это довольно просто:
Рассмотрим X1 = 100, Y1 = 80; А Х2=100, Y2 = 185;
Таким образом, у нас есть что-то подобное для этой линии.
for(nRow = Y1; nRow < Y2; nRow++)
{
for(nCol = X1; nCol < X2; nCol++)
{
nPixPos = nRow*nEffectiveWidth+nCol*3;
Image[nPixPos] = 0 ; /// Image -> unsigned char * (BUFFER) || 0 -> Black COLOR
Image[nPixPos+1] = 0 ;
Image[nPixPos+2] = 0 ;
}
}
Если я хочу нарисовать неортогональную линию, такую как:
X1 = 100, Y1 = 80 и X2 = 115, Y2 = 185
Как бы я пошел о построении цикла, чтобы нарисовать эту линию?
1 ответ
Решение
У вас есть несколько алгоритмов на выбор. Я предлагаю алгоритм Брезенхэма, если вы не хотите сглаживания, и Сяолин-Ву, если вы этого хотите.