■ このスレッドは過去ログ倉庫に格納されています
プログラミングのお題スレ Part17
- 253 :デフォルトの名無しさん:2020/04/20(月) 16:12:46 ID:EsvxpnHB.net
- >>181 Perl5 (Javaじゃなくてスマソ、ActivePerlなどのTkxモジュールがインストールされている環境で実行ください)
use Tkx;
$top = Tkx::widget->new('.');
$c = $top->new_canvas(-width => 300, -height => 300);
$c->g_pack(-expand => 1);
($x0, $y0) = (150, 50);
$r = 200;
($v, $theta) = (0, 3.1415 * 40 / 180);
($x, $y);
$dt = 20;
sub show {
($x, $y) = ($x0 + $r * sin $theta, $y0 + $r * cos $theta);
$c->coords($stick, $x0, $y0, $x, $y);
$c->coords($ball, $x-7, $y-7, $x+7, $y+7);
Tkx::after($dt, \&show);
$a = -0.00098 * sin $theta;
$a *= $a * $v > 0 ? 0.95 : 1/0.95; # dumping
$dv = $a * $dt;
$dtheta = ($v + $dv/2) * $dt / $r;
$theta += $dtheta;
$v += $dv;
}
show;
$stick = $c->create_line($x0, $y0, $x, $y, -width => 2.0);
$ball = $c->create_oval($x-7, $y-7, $x+7, $y+7, -fill => 'gray');
Tkx::MainLoop();
総レス数 1004
265 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★