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

User Tag List

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

Тема: Вращение спрайта на произвольный угол

  1. #51
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,566
    Спасибо Благодарностей отдано 
    1,225
    Спасибо Благодарностей получено 
    1,773
    Поблагодарили
    686 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    а если вращать? насколько выгоднее будет?

    а ты как считаешь сколько займет по времени поворот чернобелого спрайта на произвольный угол?
    На Спеке по любому будет медленно)

  2. #52
    Guru Аватар для Sayman
    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,277
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    пошаговую стратегию делаешь?
    для начала надо просто их настроить для поворотов и вапще с графикой засада.
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

  3. #53
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    265
    Спасибо Благодарностей получено 
    279
    Поблагодарили
    207 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sayman Посмотреть сообщение
    для начала надо просто их настроить для поворотов и вапще с графикой засада.
    возьми картинку (любую) 64х64 и вращай
    вернее тебе не вращать надо
    а брать точки с одной плоскости и укладывать их в нужные места
    на другой плоскости



    на рисунке слева находится твой спрайт
    далее ты вычисляешь точку куда будешь рисовать
    и заодно приращения для координат Х и У
    ну и рисуешь.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	пример2.png 
Просмотров:	400 
Размер:	2.4 Кб 
ID:	53134  
    С уважением,
    Jerri / Red Triangle.

  4. #54
    Guru
    Регистрация
    14.05.2015
    Адрес
    г. Харьков, Украина
    Сообщений
    2,940
    Спасибо Благодарностей отдано 
    150
    Спасибо Благодарностей получено 
    302
    Поблагодарили
    171 сообщений
    Mentioned
    4 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    возьми картинку (любую) 64х64 и вращай
    вернее тебе не вращать надо
    а брать точки с одной плоскости и укладывать их в нужные места
    на другой плоскости



    на рисунке слева находится твой спрайт
    далее ты вычисляешь точку куда будешь рисовать
    и заодно приращения для координат Х и У
    ну и рисуешь.
    Школа ,по моему шестой класс - система полярных координат ,изменение угла... http://www.mathprofi.ru/poljarnye_koordinaty.html , в OVER THE TOP мы это делали в real time

    https://youtu.be/WwD3SJDnPe4?t=200

    https://zxaaa.untergrund.net/view_demo.php?id=8805
    Последний раз редактировалось JV-Soft; 12.08.2015 в 00:32.
    Увы общий формат форума вышел из рамок моего любимого места , более тут не бываю.

  5. #55
    Activist Аватар для Sergey
    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    473
    Спасибо Благодарностей отдано 
    94
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sameone Посмотреть сообщение
    Andrew771,
    Я имел ввиду -- зачем считать каждую линию, да ещё дважды? Давай представим спрайт в виде параллельных линий. Тогда мы можем его рисовать линия за линией. Каждая линия, естественно, состоит из точек. Каждая последующая смещена относительно предыдущей, следовательно, чтобы поставить следующую точку достаточно знать на сколько нужно сместиться по у при смещении по х на 1 пиксель.
    Примерно, также мыслю.
    Спрайт - прямоугольник с геометрическим центром в точке вращения. Впишем его в окружность. Таким образом, точка ЛВУ спрайта в в каждой позиции поворота будет принадлежать данной окружности.
    Для каждого значения угла поворота строим таблицу, которая содержит:
    1) координаты ЛВУ спрайта,
    2) приращения по оси ординат для начальной левой точки каждой последующей горизонтальной линии спрайта относительно вышележащей линии,
    3) приращения по оси ординат для каждой последующей точки горизонтальной линии спрайта,
    4) Значение шага - число точек, после отрисовки которых пропускается точка в иходном спрайте.

    Для чего нужен это шаг? - Пиксели в мониторе квадратные, а гипотенуза всегда длиннее любого из катетов. Поэтому во избежании искажения размеров спрайта при повороте придётся "прорежать" линии, чтобы их длина по диагонали визуально соответствовала горизонтальной линии. При этом изображение спрайта, конечно, пострадает. Хотя, наверное, можно пойти по другому: добавлять точки по мере приближения к горизонтали.

    Углов поворота, кстати, не может быть больше, чем число пикселей, лежащих на окружности, в которую вписан спрайт.

    А выбор оси приращений и направления рисования в зависимости от положения ЛВУ, думаю, сходен с таковым для рисования окружностей.
    Последний раз редактировалось Sergey; 12.08.2015 в 08:25.
    С уважением,
    Gris / Red Triangle.
    _____________________________________
    ZX-EVO/TS-Labs config/NGS/HDD/SD-card
    Amiga A1200/Blizzard 1230@50/32/60GB
    Amiga A1200/Apollo 1260@66/32/60GB
    UnAmiga (C5) AGA GM7123 VideoDAC

  6. #56
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    265
    Спасибо Благодарностей получено 
    279
    Поблагодарили
    207 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Тут быстрее будет показать на примере
    надо будет подумать.
    наверное позже
    под ТС конфу сделаю.
    С уважением,
    Jerri / Red Triangle.

  7. #57
    Activist Аватар для Sergey
    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    473
    Спасибо Благодарностей отдано 
    94
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    Тут быстрее будет показать на примере
    надо будет подумать.
    наверное позже
    под ТС конфу сделаю.
    Тут главная рутина таблички состряпать.
    С уважением,
    Gris / Red Triangle.
    _____________________________________
    ZX-EVO/TS-Labs config/NGS/HDD/SD-card
    Amiga A1200/Blizzard 1230@50/32/60GB
    Amiga A1200/Apollo 1260@66/32/60GB
    UnAmiga (C5) AGA GM7123 VideoDAC

  8. #58
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    265
    Спасибо Благодарностей получено 
    279
    Поблагодарили
    207 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sergey Посмотреть сообщение
    Тут главная рутина таблички состряпать.
    какие там таблички?
    синусоида?
    С уважением,
    Jerri / Red Triangle.

  9. #59
    Activist Аватар для Sergey
    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    473
    Спасибо Благодарностей отдано 
    94
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    какие там таблички?
    синусоида?
    1) координаты ЛВУ спрайта,
    2) приращения по оси ординат для начальной левой точки каждой последующей горизонтальной линии спрайта относительно вышележащей линии,
    3) приращения по оси ординат для каждой последующей точки горизонтальной линии спрайта,
    4) Значение шага - число точек, после отрисовки которых пропускается точка в исходном спрайте.

    Кстати о синусоиде - вспомни свою козявилку для Inferno. Мож, покатит?
    С уважением,
    Gris / Red Triangle.
    _____________________________________
    ZX-EVO/TS-Labs config/NGS/HDD/SD-card
    Amiga A1200/Blizzard 1230@50/32/60GB
    Amiga A1200/Apollo 1260@66/32/60GB
    UnAmiga (C5) AGA GM7123 VideoDAC

  10. #60
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    265
    Спасибо Благодарностей получено 
    279
    Поблагодарили
    207 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Sergey

    это все вычисляется, хотя да можно использовать и предрассчитанные данные

    4 это лишнее


    1 координаты угла
    2 смещение при отрисовке
    3 смещение при переходе на новую линию

    а дальше берем точки и укладываем по порядку.
    соответственно шагу.
    С уважением,
    Jerri / Red Triangle.

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

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

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

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

Похожие темы

  1. Вывод спрайта по X,Y
    от drbars в разделе Программирование
    Ответов: 7
    Последнее: 20.03.2022, 10:43
  2. Поворот спрайта
    от Soplik в разделе Программирование
    Ответов: 22
    Последнее: 03.10.2011, 21:53
  3. Ответов: 13
    Последнее: 29.12.2010, 21:51
  4. Быстрое вращение в 3Д
    от TmK в разделе Программирование
    Ответов: 26
    Последнее: 24.05.2009, 04:01
  5. Поворот спрайта
    от acidrain в разделе Графика
    Ответов: 9
    Последнее: 06.12.2008, 14:27

Ваши права

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