Выполнение тригонометрических вычислений в градусах

Проблема

Требуется, чтобы в тригонометрических функциях использовались градусы вместо стандартных для 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



2013-09-10 17:05:19

Proverte kod v komentariyah gde pro list tam oshibki detskie




Оставить комментарий:
Ваше Имя:
Email:
Антибот: *  
Ваш комментарий: