Выполнение тригонометрических вычислений в градусах
Проблема
Требуется, чтобы в тригонометрических функциях использовались градусы вместо стандартных для Perl радианов.
Решение
Создайте функции для преобразований между градусами и радианами (2pi радиан соответствуют 360 градусам).
BEGIN {
use constant PI => 3.14159265358979;
sub deg2rad {
my $degrees = shift;
return ($degrees / 180) * PI;
}
sub rad2deg {
my $radians = shift;
return ($radians / PI) * 180;
}
}
Также можно воспользоваться модулем Math::Trig:
use Math::Trig;
$radians = deg2rad($degrees);
$degrees = rad2deg($radians);
Комментарий
Если вам приходится выполнять большое количество тригонометрических вычислений, подумайте
об использовании стандартных модулей Math::Trig или POSIX. В них присутствуют дополнительные
тригонометрические функции, которых нет в стандартном Perl. Другой выход заключается в определении
приведенных выше функций rad2deg и deg2rad. В Perl нет встроенной константы pi, однако при
необходимости ее можно вычислить настолько точно, насколько позволит наше оборудование для вычислений
с плавающей запятой. В приведенном выше решении pi является константой, определяемой командой use constant.
Синус угла, заданного в градусах, вычисляется следующим образом:
# Функции deg2rad и rad2def приведены выше или взяты из Math :: Trig
sub degree_sine {
my $degrees = shift;
my $radians = deg2rad($degrees);
my $result = sin($radians);
return $result;
}
См. такжеОписание функций
sin,
cos и
atan2
Proverte kod v komentariyah gde pro list tam oshibki detskie
Оставить комментарий:
|
|