Perl - неопределенная подпрограмма для загара - PullRequest
0 голосов
/ 19 марта 2019

Имея проблему, так как не понимаю, почему это не работает для загара, но хорошо работать для cos и греха.Я бы предположил, что проблема заключается в том, что он не определен, отсюда и сообщение об ошибке, но почему именно cos и sin работают, а не tan?Как бы я тогда определил метод загара?Извините за вопрос новичка, я просто пытаюсь решить Perl.

Ошибка:

Undefined subroutine &Slic3r::Print::SupportMaterial::tan called at C:/Users/owner/Documents/Slic3r/lib/Slic3r/Print/SupportMaterial.pm line 945.

Tan Code:

my $min_angle = 40;
my $min_radian = deg2rad($min_angle);
my $b = tan($min_radian);
@Z=map{$_/$b} @Z;

Cos и Sin Code:

Polygon->new(map [ $circle_radius * cos $_, $circle_radius * sin $_ ]

Редактировать: Понял, что подпрограмме понадобится функция, однако, глядя на скрипт Perl, который я пытаюсь интегрировать с модулем, он работает нормально и не имеет метода, только что объявлензагар.

1 Ответ

3 голосов
/ 19 марта 2019

sin и cos являются встроенными функциями Perl , но tan - нет.Это легко исправить с помощью простого объявления

sub tan { sin($_[0]) / cos($_[0]) }

или импорта модуля, который определяет функцию тангенса

use Math::Trig;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...