Как нарисовать линию (наклонная линия)?

Как нарисовать неортогональную линию?

Если у нас есть ортогональная линия, это довольно просто:

Рассмотрим 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 ответ

Решение

У вас есть несколько алгоритмов на выбор. Я предлагаю алгоритм Брезенхэма, если вы не хотите сглаживания, и Сяолин-Ву, если вы этого хотите.

Другие вопросы по тегам