[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Задача с цифрами на круговом графике и синус угла
Manul_87
Здравствуйте.

Столкнулся с проблемой, что 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) Можно ли каким-то другим образом вычислить зависимость середины полуокружности от её процентной составляющей (от всего круга).

Задача не критичная, но самому ужасно интересно как же сделать правильно...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.