Недавно мне пришлось написать алгоритм для рисования линий по вертикали, горизонтали и 45 градусов.Я хотел, чтобы этот алгоритм работал как можно быстрее, поэтому я расширил все возможные случаи:
if (x0 == x1){
...
}
else if (y0 == y1)
{
...
}
else {
if (distance(x0,x1) == distance(y0,y1)){
...
}
}
и, конечно, это не СУХОЙ и не чистый ...
Что самое чистоеи лучшая версия алгоритма, подобного этому?
Обратите внимание, что если линия не вертикальная, горизонтальная или 45 градусов, функция ничего не должна делать (поэтому ничего похожего на растровый алгоритм).
Пример объявленияможет быть line(int x0, int y0, int x1, int y1);