Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.30;
Скачать: CL | DM;

Вниз

Движение спрайта по прямой, учитывая угол поворота.   Найти похожие ветки 

 
Malefic ©   (2004-10-19 10:45) [0]

Есть спрайт, он поворачивается на определенный угол. Как сделать движение по прямой, но так чтобы направление зависело от угла?

X := X + sin256(Angle) * (Speed/1000)*MoveCount;
Y := Y - cos256(Angle) * (Speed/1000)*MoveCount;

Так работало на DelphiX. Щас пишу на asphyre, она не знает функции sin и cos 256, угол обрабатывается коряво и спрайт движется непонятно как.

Вопрос: Как реализовать движение, что-то типо того, как было на delphiX.

ЗЫ. напишите формулу перехода от 256 градусной меры в 360 и обратно


 
NikeOLD ©   (2004-10-19 13:00) [1]

Посмотри исходники DelphiX

Насколько я помню в DelphiX всего лишь предварительный рассчет синусов косунусов. А 256 лишь для оптимизации быстродействия (на самом деле эти функции не используют ни одной тригонометрической операции).


 
П7   (2004-10-19 14:32) [2]

Ты чё, не можешь 360 градусный угол привести к 256 градусному? Это же деление и умножение...

> NikeOLD ©   (19.10.04 13:00) [1]

В идеале - не для оптимизации, а для "компьютерного" удобства - юзания byte переменных... Хотя 1 байт - это оптимальнее, чем 2, 4 и больше... (:


 
NailMan ©   (2004-10-19 14:34) [3]

Ну наверно забыть о каких-то левых sin256/cos256 и пользовать нормальные sin/cos и радианы вместо градусов соответственно. Скорости поубавится зато будет точный расчет.

---
WBR, NailMan aka 2:5020/3337.13


 
П7   (2004-10-19 14:44) [4]


> NailMan ©   (19.10.04 14:34) [3]

Не, фигня всё это, такой точный расчёт никому не нужен, он просто не заметен будет, а иногда может дать жуткие артефакты. ):

Идеальный способ - это сгенерить всё заранее в массив, а затем брать оттуда нужные значения.


 
NikeOLD ©   (2004-10-19 15:24) [5]


> Идеальный способ - это сгенерить всё заранее в массив, а
> затем брать оттуда нужные значения.

Именно это и сделано в DelphiX. Sin256 и Cos256  просто обращаются к соотвестсвующему индексу в массиве с заранее просчитанными начениями.


 
NailMan ©   (2004-10-19 15:57) [6]

П7
некошерно это все дискретность. sin/cos рулят, особенно если через 3Dnow.

Кста, что за артефакты?

---
WBR, NailMan aka 2:5020/3337.13


 
П7   (2004-10-19 16:52) [7]

Блин, написал пост, а он не запостился... Репост:


> NikeOLD ©   (19.10.04 15:24) [5]

Ну и в чём проблема с написанием своих аналогов этих функций?


> NailMan ©   (19.10.04 15:57) [6]

Артефакты очень забавные. При повороте (без антиалиасинга) на некоторые углы пиксели могут так расположиться, что картинка совершенно на себя не похожа. Углы сейчас уже не помню, давно не работа с DirectDraw. Можешь найти в сети пример, где-то я видел... (:

Нафиг нужны дроби при работе с DirectDraw? Это только лишник тормоза на постоянные конверчения...



Страницы: 1 вся ветка

Текущий архив: 2005.01.30;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.031 c
1-1105976906
SV
2005-01-17 18:48
2005.01.30
Библиотека для сканирования и распознавания изображения ?


1-1106052394
ASH
2005-01-18 15:46
2005.01.30
файлы внутри архивов


14-1105217329
syte_ser78
2005-01-08 23:48
2005.01.30
Nova News


10-1082169149
Silver
2004-04-17 06:32
2005.01.30
Word шифровка


3-1103728517
juice
2004-12-22 18:15
2005.01.30
Как вставить запись в таблицу , содержащую Blob-поле?