双対パッポスの定理
パッポスの定理の「点」と「直線」を入れ替えたもの(参照)。
Width = 400; Height = 400 #main gray = [0.5, 0.5, 0.5] blue = [0, 0, 1] green = [0, 1, 0] li1 = Point.new(-1, -5) li2 = Point.new( 0, 6) b1 = Line.new(li1, Point.new(-1, 5)).draw(color: gray) a1 = Line.new(li1, Point.new( 1, 2)).draw(color: gray) c1 = Line.new(li1, Point.new( 1, 0.3)).draw(color: gray) a2 = Line.new(li2, Point.new( 1, 1.6)).draw(color: gray) b2 = Line.new(li2, Point.new(-1, 1.2)).draw(color: gray) c2 = Line.new(li2, Point.new( 1, -0.5)).draw(color: gray) l1 = linecross_point(a2, b1) l2 = linecross_point(a2, c1) l3 = linecross_point(b2, c1) l4 = linecross_point(b2, a1) l5 = linecross_point(c2, a1) l6 = linecross_point(c2, b1) p = points_make_line(l1, l4) q = points_make_line(l2, l5) r = points_make_line(l3, l6) objects_draw(p, q, r) [l1, l2, l3, l4, l5, l6].each {|l| l.draw(color: blue)} linecross_point(p, r).draw(color: green) objects_draw(li1, li2) cairo_gtk(Surface, Width, Height)