POV-Ray : Newsgroups : povray.advanced-users : Seeking complex prism advice : Re: Seeking complex prism advice Server Time
1 Dec 2021 16:54:46 EST (-0500)
  Re: Seeking complex prism advice  
From: William F Pokorny
Date: 9 Oct 2019 13:57:40
Message: <5d9e1f94$1@news.povray.org>
On 10/8/19 2:42 PM, Bald Eagle wrote:
> 
> 
> Right, but how do I roll up all of the linear and curved sections into a single
> PRISM declaration?

The prism and lathe bezier spline can represent curved portions, 
discontinuities in slope between curved portions and linear segments in 
a single spline. Borrowing from the circle within a circle prism I 
posted in answer to someone question a month or two ago:

#declare Cheese = srgb <1,0.65098,0>;
#declare Prism00 = prism {
     bezier_spline
     linear_sweep
     -0.2, 0.2, 28,
     <1,0>,<1,0.552285>,<0.552285,1>,<0,1>
     <0,1>,<-0.552285,1>,<-1,0.552285>,<-1,0>
     <-1,0>,<-1,-0.552285>,<-0.552285,-1>,<0,-1>
     <0,-1>,<0.552285,-1>,<1,-0.552285>,<1,0>
     <0.5,0>,<0.5,0.276143>,<0.276143,0.5>,<0,0.5>
     <0,0.5>,<0,0.5-(0.5*(1/3))>,<0,0.5-(0.5*(2/3))>,<0,0> // a macro?
     <0,0>,<0+(0.5*(1/3)),0>,<0+(0.5*(2/3)),0>,<0.5,0>     // a macro?
     pigment { color Cheese }
}

The last two bezier segments are linear; making the inner shape a slice 
of pie so to speak. While working with an overall bezier spline you 
could insert your linear parts with a macro where you'd specify only the 
end points for the segment.

That said, I'm with you on your brainstorming in this direction(1) and 
spline support could be better.

My belief is your particular proposal for supporting different stand 
alone spline segment types to represent an overall prism shape won't 
fly. In the POV-Ray code there would be too much context switching and 
fuzziness as to what segments together constitute an enclosed region / 
loop for it to be practical.

> 
> Clearly there would issues with determining where the segments intersected,
> since the list of vectors wouldn't necessarily explicitly define those.
> POV-Ray solves for roots, perhaps future [experimental] versions could have
> intersection solvers.
> 

The SDL trace() command was intended to be such a thing. Mostly, I see 
people using trace() to put things on terrain or to grow things with 
some avoidance of what objects are around. Attempting to create triangle 
meshes from POV-Ray primitives another common use.

I see less use of trace() where people have created jig (tool) objects 
for use with trace in creating other surfaces, splines and objects. It's 
a different way of thinking about creating flexible models / 
representations(1) and one I don't reach for enough.

> 
> Again, just brainstorming and illustrating the idea for rapid construction of an
> "extruded" type shape.
> 

Mostly for others - as I think you know, Inkscape is one tool that has 
image -> POV-Ray prism(bezier) capability, but you have to bring it up 
and use an interface. Years back the image -> prism export worked, but 
was 'verbose' with respect to minimal bezier spline representations for 
any given input image.

Bill P.

(1) I saw your suggestions for point lists and point list manipulation. 
Good ideas I think which would help with 'trace() based jig methods' 
among other things.


Post a reply to this message

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