С какой точностью вы вводите градусы (давайте будем использовать градусы над радианами, чтобы обсуждение было «проще»).Десятки градуса?Сотые градусы?Если ваша угловая точность не велика, то ваш результат триггера не может быть лучше.
Я видел, что это реализовано как массив, индексированный с точностью до сотых долей градуса (сохраняя угол как целое число с двумя подразумеваемыми десятичными числами).Точка также помогает при расчете - не нужно использовать высокоточные поплавки / двойные радианные углы).
Хранить значения SIN от 0,00 до 90,00 градусов будут 9001 32-разрядными значениями результата с плавающей запятой.
SIN [0] = 0,0 ... SIN [4500] = 0,7071068 ... SIN [9000] = 1,0
Если у вас есть SIN, свойство триггера COS (a) = SIN (90-a)просто означает, что вы делаете SIN [9000-a], чтобы получить COS (a)
Если вам нужна большая точность, но у вас нет памяти для большего табличного пространства, вы можете выполнить линейную интерполяцию между двумя записями вмассив, например, SIN 45,00123 будет
SIN [4500] + 0,123 * (SIN [4501] - SIN [4500])