Gudd-Head писал(а):ВитГо писал(а):Очень нуждаюсь в алгоритме рисовании линии на ассемблере.
Интересно, конечно, где вы её (линию) будете рисовать — на бумаге?![]()
А так — формула линии из алгебры 5-го класса: y = k*x + b, т.е. реализовать на АСМе умножение и сложение, потом подставлять вместо х нужный диапазон точек.
Нее, на бумаге не рисую
я уже писал про алгебру.... повторю еще раз - этот способ меня не устраивает...
сейчас практически додумал итерационный метод... но он работает не всегда.. возможно я чтото не додумал...
кто то еще решал подобную задачу ?
мой метод:
поскольку описывать долго, опишу на примере
предположим нужно построить линию из 0, 0 в координаты 8, 5
сначала заполняем матрицу смещений,
Для этого делим большее смещение конечной точки на меньшее последовательно до получения остатка от деления равного нулю
8 \ 5 = 1 остаток 3 - теперь используем остаток от деления =3 для нового деления
8 \ 3 = 2 остаток 2 - теперь используем остаток от деления =2 для нового деления
8 \ 2 = 4 остаток 0 - остаток 0, заполнение матрицы смещений закончено
соответственно нам нужно смещаться:
на 1 точку каждый шаг,
на 2 точки каждый второй шаг,
и на 3 точки каждый четвертый шаг...
Построим линию:
_12345 - по горизонтали (1..5) шкала шага, а по вертикали (1..8 ) - шкала смещений
1+
2_+
3_+
4__+
5___+
6___+
7___+
8____+
вот где то так...
но я находил некоторые примеры где этот код дает некрасивую линию
Может быть ктото сталкивался с другими алгоритмами ? (не алгебраическими)
p.s. а вы говорите формула по алгебре... !!!
кстати, мой кот постоянно почему то ложиться на полу на что нить... то на коврик, то на пакет, то на бумагу.. - это у него прикол такой или они все так делают ? чем ему лежать непосредственно на полу (ламинат, кафельная плитка) не нравиться?!
