p(a,b):=(a.b)/sqrt(b.b)$ load(eigen)$ Proy(a,b):=Comp(a,b)*unitvector(b)$ angle(a,b):=float(acos((a.b)/(sqrt(a.a)*sqrt(b.b))))$ [i,j,k]:[[1,0,0],[0,1,0],[0,0,1]]$ x(a,b):=determinant(matrix([i,j,k],a,b))$ infix(x)$ area_paralelogramo(b,c):=sqrt((b x c).(b x c))$ length(a):=sqrt(a.a)$ ist2d(Q,P1,P2):=block( a:P2-P1, length(Proy(Q-P1,[-a[2],a[1]])) )$ dist3d(Q,P1,P2):= length((Q-P1) x (P2-P1))/length(P2-P1)$ orthogonality(a,b):=block( if a.b=0 then return ("Los vectores son ortogonales.") else return("Los vectores no son ortogonales.") )$