PERL: БИБЛИОТЕКА ПРОГРАММИСТА


PERL: БИБЛИОТЕКА ПРОГРАММИСТА - стр. 87


Описание функции rand в perlfunc(l); рецепт 2.7; документация по модулю Math::Random с CPAN.


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

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

Проблема

Требуется, чтобы в тригонометрических функциях использовались градусы вме­сто стандартных для Perl радианов.

Решение

Создайте функции для преобразований между градусами и радианами (2я ради­ан соответствуют 360 градусам).

BEGIN {

use constant PI => 3.14159265358979;

sub deg2rad {

my $degrees = shift;

return (Sdegrees / 180) • PI;

sub rad2deg {

my $radians = shift;

return (Sradians / PI) - 180;

Также можно воспользоваться модулем Math::Trig:

use Math::Trig;

$radians = deg2rad($degrees); Sdegrees =  rad2deg($radians);

Комментарий

Если вам приходится выполнять большое количество тригонометрических вы­числений, подумайте об использовании стандартных модулей Math::Trig или POSIX. В них присутствуют дополнительные тригонометрические функции, ко­торых нет в стандартном Perl. Другой выход заключается в определении приве­денных выше функций rad2deg и deg2rad. В Perl нет встроенной константы я, одна­ко при необходимости ее можно вычислить настолько точно, насколько позволит ваше оборудование для вычислений с плавающей запятой. В приведенном выше решении п является константой, определяемой командой use constant. Синус угла, заданного в градусах, вычисляется следующим образом:

# Функции deg2rad и rad2def приведены выше или взяты из Math::Trig sub degree_sine {

my Sdegrees = shift;


82   Глава 2 • Числа

my Sradians = deg2rad($degrees), my $result= sin($radians),

return $result,

> Смотри также------------------------------------------------------------------------

Описание функций sin, cos и atan2 в perlfunc(l); стандартная документация по модулям POSIX и Math::Tng.

2.12. Тригонометрические функции

Проблема

Требуется вычислить значения различных тригонометрических функций — таких как синус, тангенс или арккосинус.




Начало  Назад  Вперед



Книжный магазин