Vector products: Difference between revisions

Content added Content deleted
Line 3,434: Line 3,434:


def crossProduct /# x y -- z #/
def crossProduct /# x y -- z #/
len var lon
1 get rot 2 get rot * >ps
1 get rot 2 get rot * >ps
1 var a 2 var b
3 get rot 1 get rot * >ps
lon for drop
3 get rot 1 get rot * >ps
2 get rot 3 get rot * >ps
2 for drop
2 get rot 3 get rot * ps> - ps> ps> - ps> ps> - 3 tolist
a get rot b get rot * >ps
nip nip
endfor
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