Важная информация

User Tag List

Страница 6 из 11 ПерваяПервая ... 2345678910 ... ПоследняяПоследняя
Показано с 51 по 60 из 106

Тема: Line(x1,y1,x2,y2)

  1. #51
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,858
    Спасибо Благодарностей отдано 
    131
    Спасибо Благодарностей получено 
    104
    Поблагодарили
    62 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от denpopov Посмотреть сообщение
    Вертикальные линии можно по-другому строить.
    ну а диагоналек там тоже много.

    ---------- Post added at 13:16 ---------- Previous post was at 13:02 ----------

    Цитата Сообщение от denpopov Посмотреть сообщение
    либо готовые спрайты хранить
    кстати, можно сделать спрайты линий, диагонали на весь экран, ограниченный набор углов, может достаточно. А длину в процессе обрезать.

    ---------- Post added at 13:27 ---------- Previous post was at 13:16 ----------

    А еще придумал алгоритм для линии, можь это уже изобретенный велосипед.
    Линия же на экране всегда состоит из коротких прямых горизонтальных или вертикальных линий одинаковой длины. Так вот:
    - находим длину одной такой маленькой линии (d=y2-y1/x2-x1);
    - находим, из горизонтальных или вертикальных будет состоять наша итоговая линия (что больше, x2-x1 или y2-y1);
    - затем наращиваем по одной координате на 1 пиксель, а по другой выводим эту маленькую линию. Повторять этот пункт, пока не дойдем до конечной точки.

  2. #52
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,584
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    283
    Спасибо Благодарностей получено 
    236
    Поблагодарили
    185 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    Линия же на экране всегда состоит из коротких прямых горизонтальных или вертикальных линий одинаковой длины
    одинаковой в вещественном выражении, а вот в целых числах на экране - неодинаковой
    Прихожу без разрешения, сею смерть и разрушение...

  3. #53
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,858
    Спасибо Благодарностей отдано 
    131
    Спасибо Благодарностей получено 
    104
    Поблагодарили
    62 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    одинаковой в вещественном выражении, а вот в целых числах на экране - неодинаковой
    Можно тогда какую-нить поправочную единицу ввести на некоторое количество отрезочков, один из них будет покороче или длиннее на 1 пиксель. Она будет определяться при первом и единственном делении для нахождения длины отрезка.

  4. #54
    Veteran
    Регистрация
    06.05.2006
    Адрес
    Ливны, Орловская обл
    Сообщений
    1,169
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    поправочную единицу ввести
    Ну Брезенхэм и получается =)

  5. #55
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,858
    Спасибо Благодарностей отдано 
    131
    Спасибо Благодарностей получено 
    104
    Поблагодарили
    62 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NovaStorm Посмотреть сообщение
    Ну Брезенхэм и получается =)
    почти. Там на каждой точке проверяем, нужно ли прибавить 1, а тут мы будем это делать только после отрезка.

  6. #56
    Veteran Аватар для Destr
    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,804
    Спасибо Благодарностей отдано 
    253
    Спасибо Благодарностей получено 
    114
    Поблагодарили
    88 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    А еще придумал алгоритм для линии, можь это уже изобретенный велосипед...
    Лет 10 назад пробовал такое делать (проект "Линейка").
    Получилось что для того чтоб рисовалось быстрей чем другие алгоритмы - нужно прорву памяти под таблички со всеми значениями, иначе медленно.
    Ну а уж если есть свободная память, то лучше юзать процедуру из Spectrum Expert.

  7. #57
    Veteran
    Регистрация
    08.01.2007
    Адрес
    г. Красноярск
    Сообщений
    1,280
    Спасибо Благодарностей отдано 
    277
    Спасибо Благодарностей получено 
    1,410
    Поблагодарили
    281 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    На форуме выкладывали ещё одну быструю и относительно короткую процедуру рисования линии, без таблиц. Из недостатков: не умеет рисовать по XOR.
    Вложения Вложения
    • Тип файла: txt LINE.txt (8.7 Кб, Просмотров: 113)

  8. #58
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,584
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    283
    Спасибо Благодарностей получено 
    236
    Поблагодарили
    185 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    почти. Там на каждой точке проверяем, нужно ли прибавить 1, а тут мы будем это делать только после отрезка.
    но отрезок тоже циклом с проверкой рисовать надо (и получается в итоге всё тоже самое))
    либо прорву памяти под рисование отрезков любой длины и с любой начальной позиции

    что реально сэкономить для брезенхэма - выкинуть лишнюю проверку после ступеньки
    Прихожу без разрешения, сею смерть и разрушение...

  9. #59
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,858
    Спасибо Благодарностей отдано 
    131
    Спасибо Благодарностей получено 
    104
    Поблагодарили
    62 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    но отрезок тоже циклом с проверкой рисовать надо (и получается в итоге всё тоже самое))
    отрезок либо вертикальный, либо горизонтальный, проверка только счетчика цикла. А координату каждой точки заново высчитывать не надо, только прибавлять/отнимать адрес на экране для столбца или бит для строки. В общем, надо пробовать в реале. Но Destr говорит, что уже попробовал

  10. #60
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,584
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    283
    Спасибо Благодарностей получено 
    236
    Поблагодарили
    185 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    отрезок либо вертикальный, либо горизонтальный, проверка только счетчика цикла
    говорю же, то же самое получается - вместо проверки на ступеньку проверка счётчика
    Прихожу без разрешения, сею смерть и разрушение...

Страница 6 из 11 ПерваяПервая ... 2345678910 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •