Как отрисовать линию на матрице

196
17 апреля 2022, 20:40

Имеется матрица 20x20. Необходимо отрисовать растровую линию от точки x1 до точки x2. С прямыми линиями вопросов нет, но вот с линиями под углом возникают проблемы. Отрисовка самой матрицы идет через перебор элементов двумерного массива. Нужно лишь обозначить за true элементы массива, которые должны быть отрисованы иным цветом и образовывать линию.

Например: нужно обозначить элементы в массиве от [2;5] к [7;15]. Как вычислить элементы в массиве, которые нужно перевести в true, чтобы образовалась более-менее приличная линия?

Answer 1

Посмотрите алгоритм Брезенхэма для рисования отрезков

Псевдокод для отрезка в первом квадранте:

plotLine(x0, y0, x1, y1)
    dx = x1 - x0
    dy = y1 - y0
    D = 2*dy - dx
    y = y0
    for x from x0 to x1
        plot(x,y)
        if D > 0
            y = y + 1
            D = D - 2*dx
        end if
        D = D + 2*dy
READ ALSO
Random.Range() возвращает одно и тоже число. (unity/c#)

Random.Range() возвращает одно и тоже число. (unity/c#)

Почему RandomRange() возвращает одно и тоже число? Каждый раз он возвращает 0

217
LDAP аутентификация

LDAP аутентификация

С клиента на сервер нужно передать данные о доменном пользователе под которым запущено приложениеEnvironment

117
Программа подсчета простых множителей С# с применением методов

Программа подсчета простых множителей С# с применением методов

Подскажите, что не так в моем коде"К" не хочет брать на себя значение функции

136
Эллиптическая кривая- сложение двух точек C#

Эллиптическая кривая- сложение двух точек C#

Помогите с вопросом почему консоль выводит ? где ошибка?

184