Vector products: Difference between revisions

Content added Content deleted
Line 3,433: Line 3,433:


def crossProduct /# x y -- z #/
def crossProduct /# x y -- z #/
1 get rot 2 get rot * >ps
len var lon
1 var a 2 var b
1 get rot 2 get rot * >ps
3 get rot 1 get rot * >ps
3 get rot 1 get rot * >ps
lon for drop
2 for drop
2 get rot 3 get rot * >ps
a get rot b get rot * >ps
2 get rot 3 get rot * ps> - ps> ps> - ps> ps> - 3 tolist
endfor
nip nip
a 1 - dup 0 == if drop lon endif var a
b 1 - dup 0 == if drop lon endif var b
endfor
drop drop
lon for drop
ps> ps> -
endfor
lon tolist
enddef
enddef