POV-Ray : Newsgroups : povray.advanced-users : 3D mathematics question : Re: 3D mathematics question Server Time
28 Jul 2024 16:19:16 EDT (-0400)
  Re: 3D mathematics question  
From: Andrew the Orchid
Date: 8 Nov 2004 17:22:58
Message: <418ff1c2$1@news.povray.org>
#macro TestIsect(A, B, C, P, Q)
   #local AB = B - A;
   #local AC = C - A;
   #local N = vcross(AB, AC);

   #local PQ = Q - P;

   #local _t = vdot(N, A - P) / vdot(N, PQ);

   #local Isect = ((_t >= 0) & (_t <= 1));

   #if (Isect)
     #local I = P + PQ*_t;

     #local AI = I - A;
     #local J = vcross(N, AB);
     #local K = vcross(N, AC);
     #local _u = vdot(AI, K) / vdot(AB, K);
     #local _v = vdot(AI, J) / vdot(AC, J);

     #local Isect = ((_u >= 0) & (_v >= 0) & (_u + _v <= 1));
   #end

   Isect
#end

Andrew.

PS. Annoying that I have to put the underscores on those variable 
names... grrr!


Post a reply to this message

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