Столкнулся с проблемой, что php не правильно рассчитывает синус угла в радианах с помощью функции sin
А задача изначально такая: Имеется круговая диаграмма, составленная средствами библиотеки gd2, необходимо на каждой доли круга написать числовое значение (процент).
Это делается при помощи функции:
imagettftext($im, 13, 0, $t_proc_x, $t_proc_y, $letter_color, "fonts/arial.ttf", $_GET['otkl'].'%');
Так вот для того чтобы текст вставал на ту полуокружность к которой он относиться необходимо определить координаты его начала (в данном случае левого нижнего угла).
Для этого необходимо определить координаты как бы середины данной полуокружности. Для расчета проводим окружность в 2 раза меньшего радиуса и пускаем луч делящий её пополам (при условии что мы знаем начальный и конечный углы). А далее по математической формуле в которой присутствует синус и косинус считаем координаты:
//Рассчитаем градус наклона луча посередине полуокружности
$ygol_for_sin=$begAngle+($endAngle-$begAngle)/2;
//Найдем точку пересечения этого луча с окружностью в 2 раза меньшего радиуса
$t_proc_x=$x0+($radius/2)*sin(deg2rad($ygol_for_sin));
$t_proc_y=$y0+($radius/2)*cos(deg2rad($ygol_for_sin));
Вроде бы все просто, но текст встает не туда.
Оказалось что синус и косинус углов вычисляется не правильно, например проверил:
sin(pi())
Возвращает: 1,2246.....
а должен быть ноль....
1) Возможно кто-нибудь сможет подсказать с чем связана эта ошибка с синусом и можно ли её исправить?
2) Можно ли каким-то другим образом вычислить зависимость середины полуокружности от её процентной составляющей (от всего круга).
Задача не критичная, но самому ужасно интересно как же сделать правильно...