Body #24
17 января 2001

■························[Математика]·························■

Q:  Объясните  мне  пожалуйста  смысл,  как вычисляется синус по
таблице.    Вроде,    как    я    понял,   таблица   вычисляется
sint=round(sin(i/256)*127+128),  тогда  как  например  посчитать
синус  30rp., то есть sin(pi/6)? И вообще, что это за магические
цифры 127,128?

A: [Alexander Shulepov 2:5020/1737.25]

Начнем  с  азов.  В круге y нас 360 градусов, или 2*Pi. Но число
360  нам несколько не удобно, так как если мы будем использовать
precalculate  (то  есть создание массива со значениями sin/cos в
каждом  из 360 градусов) нам придется отслеживать ситуации когда
угол  синус/косинус,  которого  мы  хотим  найти  находится  вне
промежутка  0..360  градусов  (на самом деле 0..359, так как 0 и
360  градусов  -  это один и тот же угол) и пpиобpазовывать этот
угол  в соответствующий ему, лежащий в указанном промежутке. Как
нам  этого  избежать?  Да  очень  просто, поделим круг не на 360
частей, а на 256, тогда снимается проблема отслеживания значения
угла.  Нам  достатючно  использовать  тип  char для переменной в
которой   хранится   значение  угла.  Все  проверки  выполняются
автоматически  и  не  жрут  ресурсов. Формулы для преобразований
выводятся  элементарно.  Теперь насчет магических чисел... Почти
везде  стараются  заменить числа с плавающей запятой, на числа с
фиксированной точкой. Если fixed point y нас x.8, то все числа с
плавающей точкой умножаются на 256. В примере с водичкой, массив
высот  был типа unsigned char, то есть максимальная высота равна
255.  Вют  отсюда  и  берутся  числа 127, 128. 128 - это уровень
спокойной воды, а 127 есть амплитуда колебаний волн. Вот в итоге
и получается формула: sintable[k]=sin(2*PI*k/256)*127+128;




Other articles:


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Similar articles:
News - A new version of EWS, was SHIT 2001, came a few paragraph numbers, the new newspaper KAP KAR Bird "and" ZaRulem Printed Word ", the newspaper KrNews # 15 and Insanity # 10, new sound map DMA USC, ZX-Spectrum slowly dies, the idea of modular game about Dizzy.
Games - Cheat, break open UFO II.
about different - "Spectrum home computers as a class is disappearing. And it is a fact" ...

В этот день...   2 July