batch initialize() {
clf(),
default_model(p3ga),
a = red(e1), b = green(e2), c = blue(e3),
m1 = 0.4, m2 = 0.2, m3 = -0.8,
n1 = -0.3, n2 = 0.2, n3 = - 0.1,
m = m1 e1 + m2 e2 + m3 e3,
n = n1 e1 + n2 e2 + n3 e3,
I= e1^e2^e3;
}
function dual3(n) {
I = e1^e2^e3;
return( - lcont(n, I) );
}
Line and Dual line
initialize(),
L = e0^m - dual3(n),
Ldual = -e0^n + dual3(m),
Plane and Dual point
initialize(),
h = 0.3,
PI = - e0 ^ dual3(n) + h I,
PIdual = h e0 - n,
Point and Dual Plane
initialize(),
q = e0 + m,
qdual = e0^dual3(m) + I,
join of two points
initialize(),
p = e0 + m,
q = e0 + n,
p^q,
# join(p, q)
# p|q
join of line and point
initialize(),
L = e0^m - dual3(n),
p = e0 + m,
p^L
# join(p, L)
# p|L
initialize(),
L = e0^m - dual3(n),
PI = - e0 ^ dual3(m) + h I,
dual( dual(L) ^ dual(PI) )
meet( L, PI )
initialize(),
h2 = 0.4,
PI1 = - e0 ^ dual3(m) + h I,
PI2 = - e0 ^ dual3(n) + h2 I,
dual(PI1)^dual(PI2),
dual(dual(PI1)^dual(PI2)),
meet(PI1, PI2),
initialize(),
l1 = 0.1, l2 = -0.6, l3 = 0.1,
l = l1 e1 + l2 e2 + l3 e3;
p1 = e0 + m,
p2 = e0 + n,
p3 = e0 + l,
join(p1, join(p2, p3)),
dual(join(p1, join(p2, p3))),
p1dual = dual(p1),
p2dual = dual(p2),
p3dual = dual(p3),
meet(meet(p1dual, p2dual), p3dual)
# p = (op(m,n) + op(n,l) + op(l,m)) / (...)