ED писал(а):Может кто знает алгоритм линейной интерполяции без делений? Брезенхем не интересует по причине фиксированного шага равного 1 или -1.
fyrex писал(а):Соответственно, если выбрать шкалу интерполяции равной 1.0,
читай "степени 2", то деление разумеецо не понадобицо !
annoynimous писал(а):
Из формулы видно, что не делить можно в 2 случаях:
1 - если N - степень двойки,
2 - если N - константа всегда (тогда деление заменяется умножением).
ED писал(а):annoynimous писал(а):
Из формулы видно, что не делить можно в 2 случаях:
1 - если N - степень двойки,
2 - если N - константа всегда (тогда деление заменяется умножением).
А ведь можно и по брезенхему от A до B за N шагов без делений и умножений. Для меня тема неактуальна...
annoynimous писал(а):
2 - если A и B целые, а |A-B|>N, то шаг будет или int((B-A)/N), или на единицу больше. Опять деление.
3 - брезенхем просто бессмысленен для фиксед-поинт.
ED писал(а):annoynimous писал(а):
2 - если A и B целые, а |A-B|>N, то шаг будет или int((B-A)/N), или на единицу больше. Опять деление.
3 - брезенхем просто бессмысленен для фиксед-поинт.
Я тебя не понимаю, какое деление?
Если B-A>N, то брезенхемом все интерполируется нормально.
Причем здесь фикс.пнт вообще?
Чем фикс.пнт отличается от обычного целого?
annoynimous писал(а):ED писал(а):annoynimous писал(а):
2 - если A и B целые, а |A-B|>N, то шаг будет или int((B-A)/N), или на единицу больше. Опять деление.
3 - брезенхем просто бессмысленен для фиксед-поинт.
Я тебя не понимаю, какое деление?
Если B-A>N, то брезенхемом все интерполируется нормально.
Я тебя - тоже. Поясни. На примере рисования линии с углом более 45 градусов (y=(234/123)*x), точки ставятся так, чтобы на каждой координате x 1 точка. Я представляю себе брезенхем только когда наклон менее 45 градусов.Причем здесь фикс.пнт вообще?
Чем фикс.пнт отличается от обычного целого?
Тогда почему нету ни одного текстуратора на брезенхеме, а все на DDA?
annoynimous писал(а):ED писал(а):annoynimous писал(а):
2 - если A и B целые, а |A-B|>N, то шаг будет или int((B-A)/N), или на единицу больше. Опять деление.
3 - брезенхем просто бессмысленен для фиксед-поинт.
Я тебя не понимаю, какое деление?
Если B-A>N, то брезенхемом все интерполируется нормально.
Я тебя - тоже. Поясни. На примере рисования линии с углом более 45 градусов (y=(234/123)*x), точки ставятся так, чтобы на каждой координате x 1 точка. Я представляю себе брезенхем только когда наклон менее 45 градусов.
Тогда почему нету ни одного текстуратора на брезенхеме, а все на DDA?
ED писал(а):Я проверяю в каком положении линия, если по y меньше чем по х, то просто меняю в брезенхеме расчет местами. Могу показать свой исходник на асме 68к отрисовки wire-полигона по брезенхему. Линии рисуются под любыми углами. Используется фиксед.пнт 16:8(мне так больше нравится;)). Все летает, нет никаких делений, умножений. Только сложения, условия и сдвиг.
Тогда почему нету ни одного текстуратора на брезенхеме, а все на DDA?
Я не видел ни одного текстурирования, поэтому ничего сказать не могу.
annoynimous писал(а):ED писал(а):Вот о чём и речь, что во-1 брезенхем без делений только когда шаг 0 или 1, во-2, допускает обобщение на случай, когда шаг N или N+1 (опять же для линий или заполненных полигонов), но требует в этом случае деления, и как бы не 1 умножения ещё, в-3 брезенхем как таковой не есть линейная интерполяция в общем виде, а лишь особо частный случай, оптимизированный для целочисленных координат линии и определённого шага.
Так ведь можно использовать приращение 1, просто в некоторых случаях цикл будет длиннее.Тогда почему нету ни одного текстуратора на брезенхеме, а все на DDA?Я не видел ни одного текстурирования, поэтому ничего сказать не могу.Я думал, что ты знаешь что-то, чего не знаю я, а оказалось - наоборот... =))
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24