POV-Ray : Newsgroups : povray.general : Newbie Question: a simple polygon in 3D : Re: Newbie Question: a simple polygon in 3D Server Time
2 Aug 2024 22:17:50 EDT (-0400)
  Re: Newbie Question: a simple polygon in 3D  
From: Tor Olav Kristensen
Date: 17 Jul 2004 09:57:04
Message: <40f93030$1@news.povray.org>
Tor Olav Kristensen wrote:

...
> 
> #macro Slice(ContourA, ContourB, FromZ, ToZ)
> 
>   #local Size = dimension_size(ContourA, 1);
> 
>   #local Cnt = 0;
>   #while (Cnt < Size - 1)
>     #local p1 = ContourA[Cnt] + z*FromZ;
>     #local p2 = ContourB[Cnt] + z*ToZ;
>     #local p3 = ContourA[Cnt + 1] + z*FromZ;
>     #local p4 = ContourB[Cnt + 1] + z*ToZ;
>     triangle { p1, p2, p3 }
>     triangle { p2, p3, p4 }
>     #local Cnt = Cnt + 1;
>   #end // while
> 
> #end // macro Slice
> 
...

If you want the slice to be connected all the way around, then just
use this macro instead:


#macro Slice(ContourA, ContourB, FromZ, ToZ)

   #local Size = dimension_size(ContourA, 1);

   #local Cnt = 0;
   #while (Cnt < Size)
     #local p1 = ContourA[mod(Cnt, Size)] + z*FromZ;
     #local p2 = ContourB[mod(Cnt, Size)] + z*ToZ;
     #local p3 = ContourA[mod(Cnt + 1, Size)] + z*FromZ;
     #local p4 = ContourB[mod(Cnt + 1, Size)] + z*ToZ;
     triangle { p1, p2, p3 }
     triangle { p2, p3, p4 }
     #local Cnt = Cnt + 1;
   #end // while

#end // macro Slice


-- 
Tor Olav
http://subcube.net
http://subcube.com


Post a reply to this message

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