You are on page 1of 1

#c:\perl\bin\perl.

exe
################################################
# Tkx
#
use Tkx;
use utf8;
my $mw=Tkx::widget->new(".");
$mw->g_wm_title(" ");
my $frm = $mw->new_ttk__frame(-padding => "3 3 12 12");
$frm->g_grid(-column=>0, -row=>0,-sticky=>"nwes");
$mw->g_grid_columnconfigure(0,-weight=>1);
$mw->g_grid_rowconfigure(0,-weight=>1);
my $eTONum = $frm->new_ttk__entry(-width=>7, -textvariable=>\$TONumber);
$eTONum->g_grid(-column=>2,-row=>1,-sticky=>"we");
my $eTORad = $frm->new_ttk__entry(-width=>7, -textvariable=>\$TORadius);
$eTORad->g_grid(-column=>2,-row=>2,-sticky=>"we");
my $cb = $frm->new_ttk__button(-text=>"Calculate", -command => sub {calculate();
});
$cb->g_grid(-column=>3,-row=>3,-sticky=>"w");

$frm->new_ttk__label(-text=>" 1:")->g_grid(-column=>1,-row=>1,-sticky=>"e");
$frm->new_ttk__label(-text=>" R= ")->g_grid(-column=>1,-row=>2,-sticky=>"e");
$frm->new_ttk__label(-text=>"m")->g_grid(-column=>3,-row=>2,-sticky=>"w");
foreach (Tkx::SplitList($frm->g_winfo_children)) {
Tkx::grid_configure($_, -padx=>5, -pady=>5);
}
$eTONum->g_focus;
$mw->g_bind("<Return>", sub {calculate();});
################################################
#
#
sub acos{
my($x)=@_;
return atan2(sqrt(1-$x*$x),$x);
}
################################################
#
#
sub calculate {
my $G=1.435;
my($cs)=$TONumber/sqrt(1+$TONumber**2);
#
$cs=($R-$G/2)/($R+$G/2);
#
$cs*$R+$cs*$G/2=$R-$G/2;
#
$R=(1+$cs)/(1-$cs)*$G/2;
$TORadius=int((1+$cs)/(1-$cs)*$G/2*1000.0+0.5)/1000.0;
return $TORadius;
}
Tkx::MainLoop();

You might also like