#テキストを配置
TkLabel.new{
   text "Line Demo      T.Tarui\n"
   pack
}
 
$c = Canvas.new                   
#キャンバスの初期化
$c.pack
$c.width 500
$c.background "darkgreen"
Line.new($c,100,100,300,200)          
# 直線
Line.new($c,300,200,400,100)          
# 直線
Oval.new($c,100,100,200,200)          
# 円(楕円)
Rectangle.new($c,200,100,300,200)   # 正方形(長方形)
Tk.mainloop
--------------------------------------------------------------------------
 
 
2.Color Demo
-------------------------------------------------------------------------
require "tkclass"
TkLabel.new{
   text "Color Demo      T.Tarui\nRuby\n"
   pack
}
 
canvas = TkCanvas.new
canvas.background "darkgreen"
canvas.width 600
TkcRectangle.new(canvas, '1c', '2c', '3c', '3c','outline' => 'black', 'fill' => 'LightBlue')
TkcRectangle.new(canvas,10,10,50,50,'outline' => 'black', 'fill' =>
'Yellow')
TkcLine.new(canvas,100,100,300,200,'fill' => 'red')
canvas.pack
Tk.mainloop
-------------------------------------------------------------------------
 
 
3.Cycloid Demo
-------------------------------------------------------------------------
#########################################
# Cycloid Demo      Dec.10 2000 T.Tarui #
#########################################
require "tkclass"
# ラベル
TkLabel.new {
   text "Cycloid Demo      T.Tarui\n"+"r=50"
   pack
}
# サイクロイド描画
r=50
$c = Canvas.new
$c.pack
$c.width 400
Line.new($c,0,200,400,200)
Line.new($c,20,0,20,400)
x0=0
y0=0
for i in 1..360
  x=r*(3.14*i/180-Math.sin(3.14*i/180))
  y=r*(1-Math.cos(3.14*i/180))
Line.new($c,x0+20,200-y0,x+20,200-y);
  x0=x
  y0=y
end
# Quitボタン
TkButton.new {
 text 'Quit'
  command proc{
    exit
  }
 pack('side'=>'bottom')
}
Tk.mainloop
-------------------------------------------------------------------------
 
 
4.Trocoid Demo
-------------------------------------------------------------------------
#########################################
# Trocoid Demo     Dec.10 2000 T.Tarui #
#########################################
require "tkclass"
# ラベル
TkLabel.new {
   text "Trocoid Demo      T.Tarui\n"+"r=50
"
   pack
}
# 描画領域作成
$r=50
$c = Canvas.new
$c.pack
$c.width 600
Line.new($c,0,200,600,200)
Line.new($c,20,0,20,500)
 
# ボタン
TkButton.new {
 text 'd=0'
  command proc{
    $d=0
    prot
  }
 pack('side'=>'left')
}
TkButton.new {
 text 'd=10'
  command proc{
    $d=10
    prot
  }
 pack('side'=>'left')
}
 
TkButton.new {
 text 'd=20'
  command proc{
    $d=20
    prot
 }
 pack('side'=>'left')
}
 
TkButton.new {
 text 'd=30'
  command proc{
    $d=30
    prot
  }
 pack('side'=>'left')
}
TkButton.new {
 text 'd=40'
  command proc{
    $d=40
    prot
  }
 pack('side'=>'left')
}
TkButton.new {
 text 'd=50 (Cycloid)'
  command proc{
    $d=50
    prot
  }
 pack('side'=>'left')
}
TkButton.new {
 text 'd=60'
  command proc{
    $d=60
    prot
  }
 pack('side'=>'left')
}
TkButton.new {
 text 'd=70'
  command proc{
    $d=70
    prot
  }
 pack('side'=>'left')
}
# Quitボタン
TkButton.new {
 text 'Quit'
  command proc{
    exit
  }
 pack('side'=>'right')
}
# 描画
def prot
 
x0=0
y0=0
for i in 1..600
  x=$r*3.14*i/180-$d*Math.sin(3.14*i/180)
  y=$r*1-$d*Math.cos(3.14*i/180)
Line.new($c,x0+20,200-y0,x+20,200-y);
  x0=x
  y0=y
end
end
 
 
Tk.mainloop
------------------------------------------------------------------
