Algebra(2,0,1, ()=>{
var point = (x,y)=>1e12+x*1e02+y*1e01,
myprint = (lab,num)=>lab+num.toFixed(3),
ps = (mv) => mv.e012,
first = true;
var A=point(-.5,0),
B=point(.5,.2),
X=(A+B).Normalized,
m=()=>(A&B).Normalized,
n=m<<(A+B),
n = ()=>m<<X;
var negColor = 0x000000,
posColor = 0xcccccc;
return this.graph(()=>{
var apx = (A&n).s, bpx = (B&n).s;
X = m^n;
return ["Point in segment via wedge",myprint("A v n=",apx)+" "+myprint("B v n=",bpx),
0x444444,A,"A",B,"B",
0xff0000,m,"m",
0x0000ff,n,"n",
0x00cc00,[A,B],
(apx*bpx <= 0 ? 0x00cc00 : 0xff0000),X,"X"]
}, {
pointRadius:1.5,
lineWidth:2,
fontSize:1.5,
grid:false,
scale:2,
width:window.innerWidth});
})