POV-Ray : Newsgroups : povray.binaries.images : First example of my HF macros : Re: First example of my HF macros Server Time
16 Aug 2024 08:15:47 EDT (-0400)
  Re: First example of my HF macros  
From: Tor Olav Kristensen
Date: 7 Mar 2002 17:58:55
Message: <3C87EE6D.7DC2573D@hotmail.com>
Shay wrote:
> 
>...
> I am pretty sure that vcross(V2-V1,V1-V3) gives a more accurate result than
> vcross(V2-V1,V3-V1). Just going on what I have heard on that one. Haven't
> tested it myself.

vcross(v2 - v1, v3 - v1) = - vcross(v2 - v1, v1 - v3)


And further:

vcross(vA, vA) = <0, 0, 0>

vcross(s*vA, vB) = vcross(vA, s*vB) = s*vcross(vA, vB)
vcross(vA, vB/t) = vcross(vA/t, vB) = vcross(vA, vB)/t
vcross(s*vA, vB/t) = vcross(vA, vB)*s/t

vcross( vA, vB) = - vcross(vB,  vA)
vcross(-vA, vB) =   vcross(vA, -vB) = - vcross(vA, vB)

vcross(vA + vB, vC) = vcross(vA, vC) + vcross(vB, vC)
vcross(vA, vB - vC) = vcross(vA, vB) - vcross(vA, vC)

  vcross(vA - vB, vC - vD)
= vcross(vA, vC - vD) - vcross(vB, vC - vD)
= vcross(vA, vC) - vcross(vA, vD) - vcross(vB, vC) + vcross(vB, vD)

  vlength(vcross(vA, vB))
= vlength(vA)*vlength(vB)*sin(AngleBetween(vA, vB))

  sin(AngleBetween(vA, vB))
= vlength(vcross(vnormalize(vA), vnormalize(vB)))

  vnormalize(vcross(vA, vB))
= vcross(vA, vB)/vlength(vA)/vlength(vB)/sin(AngleBetween(vA, vB))

  vcross(vnormalize(vA), normalize(vB))
= vnormalize(vcross(vA, vB))*sin(AngleBetween(vA, vB))

  vlength(vA)*sin(AngleBetween(vA, vB))
= vlength(vcross(vA, vnormalize(vB)))

... and so on ...


Tor Olav


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.