|
|
So, here's the deal - the equations you're suggesting are AFAIK, going to be
_parametric_. x, y, and z are going to depend on some independent variable, in
your case, t.
So the easiest way to implement this is with a parametric {} object.
It's also ridiculously slow unless you employ some tricks.
Parametrics use the variables u and v. I used u for the curve, and v for the
height.
An isosurface would require you to figure out what the implicit equation is for
the curve - one equation that uses x, y, and z.
Not sure what your idea is with this - I could speculate, but I'd say there are
probably better ways.
#version 3.7;
// Bill Walker "Bald Eagle" March 2018
global_settings {assumed_gamma 1.0}
#include "colors.inc"
camera {
location <0, 10, -20>
right x*image_width/image_height
look_at <0, 0, 0>}
light_source { <0, 15, -50> color rgb <1, 1, 1>}
plane {y, 0 pigment {Gray10}}
#declare a = 0.5; //(1+sqrt(5))/2;
#declare r = 0.25;
parametric {
function {r * (cos (u) + (u - a) * sin (u))}
function { v }
function {r * (sin (u) - (u - a) * cos (u))}
<0, -1>, <10*tau, 1> // start, end of (u,v)
contained_by {box {<1, 1, 1>*-10, <1, 1, 1>*10} }
max_gradient 20
accuracy 0.01
precompute 20 x,y,z
texture {pigment {color rgb <1,1,1>}
finish {specular 0.4 phong 0.5}}
scale 1
rotate <0, 0, 0>
}
Post a reply to this message
|
|