有一个问题,因为不明白为什么它不适合晒黑,但可以很好地为cos和sin工作。我认为问题在于它是未定义的,因此是错误消息,但是为什么cos和sin确实起作用而不是tan起作用?然后我将如何定义tan方法?抱歉,对于新手问题,我正在尝试开发Perl。
错误:
Undefined subroutine &Slic3r::Print::SupportMaterial::tan called at C:/Users/owner/Documents/Slic3r/lib/Slic3r/Print/SupportMaterial.pm line 945.
Tan代码:
my $min_angle = 40;
my $min_radian = deg2rad($min_angle);
my $b = tan($min_radian);
@Z=map{$_/$b} @Z;
邮编:
Polygon->new(map [ $circle_radius * cos $_, $circle_radius * sin $_ ]
编辑:意识到子例程将需要一个函数,但是当我查看要与模块集成的Perl脚本时,它运行良好且没有方法,只是声明为tan。
答案 0 :(得分:3)
sin
和cos
是builtin Perl functions,但tan
不是。只需简单的声明即可轻松补救
sub tan { sin($_[0]) / cos($_[0]) }
或导入定义切线函数的模块
use Math::Trig;