POV-Ray : Newsgroups : povray.advanced-users : Seeking complex prism advice : Re: Seeking complex prism advice Server Time28 May 2024 10:24:30 EDT (-0400)
 From: William F Pokorny Date: 9 Oct 2019 13:57:40 Message: <5d9e1f94\$1@news.povray.org>
```
{
"@context": "https://schema.org",
"@type": "DiscussionForumPosting",
"@id": "#5d9e1f94%241%40news.povray.org",
"dateCreated": "2019-10-09T17:57:40+00:00",
"datePublished": "2019-10-09T17:57:40+00:00",
"author": {
"@type": "Person",
"name": "William F Pokorny"
}
}
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.
```