POV-Ray : Newsgroups : povray.advanced-users : Making Patterns with functions : Re: Making Patterns with functions Server Time 9 Sep 2024 15:18:34 EDT (-0400)
 Re: Making Patterns with functions
 From: jr Date: 25 Aug 2024 12:20:00 Message:
```
{
"@context": "https://schema.org",
"@type": "DiscussionForumPosting",
"headline": "Re: Making Patterns with functions",
"dateCreated": "2024-08-25T16:20:00+00:00",
"datePublished": "2024-08-25T16:20:00+00:00",
"author": {
"@type": "Person",
"name": "jr"
}
}
hi,

"Bald Eagle" <cre### [at] netscapenet> wrote:
> ...
> Wheee!   Nice job.  :)

start on.  :-)

> Can you adjust the symmetry?  Have 6-fold, or 7?
> After playing with this stuff a bit, it seems like that whole sin*cos xy yz zx
> thing has a lot of potential as a base pattern to do all sorts of interesting
> things with.  Even just the threshold can change the apparent look quite a bit.

yes, I just discovered that replacing "tau" with "pi * scale_factor" and using
slightly different factors, things get real .. interesting.

re your question, I answer with an Obama quote: "Yes, we can" :-)  below is
excerpted from my WIP code:

/* added bailout & max_trace */
global_settings {adc_bailout (1/254) assumed_gamma 1 max_trace_level 255}

/* #mirrors */
#declare n_ = 3;

#declare angle_ = 360 / n_;

/* epsilon */
#declare eps_ = 1e-3;

/* length of tube */
#declare len_ = 10;

/* prism with hole */
#declare pi_ = <.99,0,0>;
#declare po_ = <1.01,0,0>;

#declare pts_ = array [n_][2];

#for (i_, 0, n_-1)
#local ta_ = vrotate(po_, <0,(angle_*i_),0>);
#local tb_ = vrotate(pi_, <0,(angle_*i_),0>);
#local pts_[i_][0] = <ta_.x,ta_.z>;
#local pts_[i_][1] = <tb_.x,tb_.z>;
#end

/* rotate to centre on -z */
prism {
linear_spline eps_, len_, 2*(1+n_),
#for (i_,n_-1,0,-1) pts_[i_][0], #end pts_[n_-1][0],
#for (i_,0,n_-1) pts_[i_][1], #end pts_[0][1]
open
sturm on