Ну батенька ,упростили называется .Двоичный код на входе и это от любителя целочисленной арифметики ,не ожидал .да и угол маловат ,у меня 0-360 градусов.confused:
Ну батенька ,упростили называется .Двоичный код на входе и это от любителя целочисленной арифметики ,не ожидал .да и угол маловат ,у меня 0-360 градусов.confused:
электронщик до мозга костей и не только
всё ж зависит от задачи...
есть отдельная тема в программировании "быстрое вычисление синуса", так тут задача в первую очередь использовать команды которые быстро считают.
а есть которые красиво выглядят
про "двоичный код"
1) я сначала думал использовать степени 2ки для вычисления и по этому решил ввод для теста сделать таким...
потом остановился на степенях тройки
и по уму надо было всё в макрос переписать, где аргумент вводится одним нажатием, но, как вы знаете, текущая версия не удобна для редактирования макросов...
2) угол меняется в "2 счёта" изменением констант...
PS я предполагал что вы не оцените "фарш с тестом", но до состояния готовых пирожков я решил не доводить...
(мож пока)
вот ещё вариант, синус и косинус (без синуса и косинуса )
с приростом (убыванием) на заданный угол.
угол задаётся с помощью констант sin(pi/2/N)*65536 и cos(pi/2/N)*65536
где N - кол-во шагов от 0 до pi/2
в примере N=90, т.е. шаг равен 1ому градусу.
у макроса 2 входа:
1) направление, т.е. прирост или убывние угла
2) импульс этого самого прироста/убывания..
и 2 выхода - sin и cos текущего угла умноженного на 65535
(для наглядности сделал и вещественный вид результата sin и cos в основной программе)
PS всё с использованием исключительно целочисленной арифметики!
Последний раз редактировалось AI!; 26.10.2011 в 17:07.