Оптимальное рисование линий
От: Аноним  
Дата: 15.02.06 10:21
Оценка:
Всем привет!

Есть вот задачка, но я не могу её решить ввиду незнания дискретной математики (вроде оно из этой области).

Дано:
Прямая, заданная: вектором и точкой или двумя точками или уравнением y = kx + b.
Итератор на прямоугольной матрице, позволяющий смещение на 1 ячейку вверх, вниз, направо или влево, и установку значения в текущую ячейку.
Возможность получить этот итератор для любой ячейки, заданной координатами i и j.

Задача:
Провести прямую, используя минимальное количество из 5 операций итератора.

Я полагаю, что задачу можно решить, рассчитав для прямой последовательность действий и выполнив её в цикле. Например, для прямой в ~30 градусов пересекающей ось Х последовательность будет такой: направо, установить 1, направо, установить единицу, направо, вверх, установить единицу. Результат:

**
**
**


Но вот как получить эту последовательность — для меня вопрос ещё тот. Уже почти 4 часа бьюсь, ничего не получается . Другие решиния, кстати, приветствуются
Re: Оптимальное рисование линий
От: korzhik Россия  
Дата: 15.02.06 10:34
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Всем привет!


А>Есть вот задачка, но я не могу её решить ввиду незнания дискретной математики (вроде оно из этой области).


А>Дано:

А>Прямая, заданная: вектором и точкой или двумя точками или уравнением y = kx + b.
А>Итератор на прямоугольной матрице, позволяющий смещение на 1 ячейку вверх, вниз, направо или влево, и установку значения в текущую ячейку.
А>Возможность получить этот итератор для любой ячейки, заданной координатами i и j.

А>Задача:

А>Провести прямую, используя минимальное количество из 5 операций итератора.

Я думаю, что тебе нужен алгоритм Брезенхема генерации 4-х связной развертки отрезка
Re[2]: Оптимальное рисование линий
От: Аноним  
Дата: 15.02.06 10:43
Оценка:
Здравствуйте, korzhik, Вы писали:

K>Я думаю, что тебе нужен алгоритм Брезенхема генерации 4-х связной развертки отрезка


Спасибо! А можно в двух словах про что такое развёртка отрезка? Или сцылку? Я нашёл вот это http://www.codenet.ru/progr/video/alg/alg2.php — но там только код на паскакале, а мне бы почитать... И что там ещё за ЦДА такое?
Re[3]: Оптимальное рисование линий
От: korzhik Россия  
Дата: 15.02.06 11:01
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, korzhik, Вы писали:


K>>Я думаю, что тебе нужен алгоритм Брезенхема генерации 4-х связной развертки отрезка


А>Спасибо! А можно в двух словах про что такое развёртка отрезка? Или сцылку? Я нашёл вот это http://www.codenet.ru/progr/video/alg/alg2.php — но там только код на паскакале, а мне бы почитать... И что там ещё за ЦДА такое?


ну так погугли.вот что я нашёл:
http://alglib.sources.ru/graphics/section4connected.php
http://ermak.cs.nstu.ru/kg_rivs/kg02.htm#tth_sEc0.2
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.