双対パッポスの定理

パッポスの定理の「点」と「直線」を入れ替えたもの(参照)。


 

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)