User Tag List

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

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

  1. #51

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,374
    Спасибо Благодарностей отдано 
    1,695
    Спасибо Благодарностей получено 
    2,214
    Поблагодарили
    868 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

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

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

  2. #52

    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    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

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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



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

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

  4. #54

    Регистрация
    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

    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    484
    Спасибо Благодарностей отдано 
    135
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    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

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  7. #57

    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    484
    Спасибо Благодарностей отдано 
    135
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    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

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  9. #59

    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    484
    Спасибо Благодарностей отдано 
    135
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    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

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    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

Ваши права

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