|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
In article <3f971c0a$1@news.povray.org>,
"Hughes, B." <omn### [at] charternet> wrote:
> I had thought this might be something already done by someone before but I
> sure can't locate anything concerning a isosurface flower. I suppose I'm
> thinking of meshes.
I did this a *long* time ago, when I was first playing around with
isosurfaces. It was basically an extremely distorted sphere function,
and looked a bit like a fat rose. A mesh certainly seems like a better
choice, however.
--
Christopher James Huff <cja### [at] earthlinknet>
http://home.earthlink.net/~cjameshuff/
POV-Ray TAG: chr### [at] tagpovrayorg
http://tag.povray.org/
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
In article <cja### [at] netplexaussieorg>,
cja### [at] earthlinknet says...
> In article <3f971c0a$1@news.povray.org>,
> "Hughes, B." <omn### [at] charternet> wrote:
>
> > I had thought this might be something already done by someone before but I
> > sure can't locate anything concerning a isosurface flower. I suppose I'm
> > thinking of meshes.
>
> I did this a *long* time ago, when I was first playing around with
> isosurfaces. It was basically an extremely distorted sphere function,
> and looked a bit like a fat rose. A mesh certainly seems like a better
> choice, however.
>
>
In theory:
http://mathworld.wolfram.com/StarrRose.html
However, since they don't actually provide the equations for it, but
simply assume you know how to derive it from the 2D calcs in:
http://mathworld.wolfram.com/Rose.html
It isn't very helpful. Especially since I can't figure out what 'a' needs
to be or do to make Rose calcs work right either....
In my case I am trying to do something like:
N = 5 * rnd
vdelta = 2 * PI * rnd
vector = a * sin(N * vdelta)
X = cos(vector) * 30
Y = sin(vector) * 30
The problem is all I get is a dang circle... It is driving me batty. If
it was for something in POV, it would be driving me even more nuts. But
man would the StarrRose make a real nice Isosurface. Sigh...
--
void main () {
call functional_code()
else
call crash_windows();
}
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Wasn't it Patrick Elliott who wrote:
>In my case I am trying to do something like:
>
>N = 5 * rnd
>vdelta = 2 * PI * rnd
>vector = a * sin(N * vdelta)
>X = cos(vector) * 30
>Y = sin(vector) * 30
>
>The problem is all I get is a dang circle... It is driving me batty. If
>it was for something in POV, it would be driving me even more nuts. But
>man would the StarrRose make a real nice Isosurface. Sigh...
I think that N should be a constant (it's the number of petals or half
the number of petals depending on whether it's odd or even) and X and Y
should be cos(vdelta)*vector and sin(vdelta)*vector. "a" is a scaling
factor, the maximum radius of the whole shape
So:-
#version 3.5;
global_settings {assumed_gamma 1.0}
camera {location <0,0,-10> look_at <0,0,0> angle 50}
background {rgb 1}
light_source {<-30, 100, -30> color rgb 1}
#declare rnd=0;
#declare N = 5;
#declare a=3;
#while (rnd < 1)
#declare vdelta = 2 * pi * rnd;
#declare vector = a * sin(N * vdelta);
#declare X = cos(vdelta) * vector;
#declare Y = sin(vdelta) * vector;
sphere {<X,Y,0>,0.2 pigment {rgb <1,1,0>}}
#declare rnd = rnd + 0.001;
#end
If we bung the significant bit "vector = a * sin(N * vdelta)" into an
isosurface it looks like this "a * sin(N * f_th(x,z,y))", which doesn't
do anything useful on it's own but suggests something like this:-
#version 3.5;
global_settings {assumed_gamma 1.0}
camera { location <-1, 1, -6> look_at <0, 0, 0> angle 50}
background {rgb 1}
light_source {<-30, 100, -30> color rgb 1}
#include "functions.inc"
#declare n = 5;
#declare a = 2;
isosurface {
function { a * sin(n*f_th(x,z,y)) * f_sphere(x,y,z,a) + 0.1}
max_gradient 20
contained_by{sphere{0,a}}
pigment {rgb .9}
finish {phong 0.5 phong_size 10}
}
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Wasn't it Hughes, B. who wrote:
>How elaborate a flower? Unrealistic daisy is simple. Realistic rose much
>more difficult. At least from what I'm thinking it would be.
>
>The daisy could be a radial pattern, like so:
>
That could be made a little more realistic, like:-
#version 3.5;
global_settings {assumed_gamma 1.0}
camera {location <-1,0,-2> look_at <0,0,0> angle 50}
background {rgb 1}
light_source {<-10, 10, -30> color rgb 1}
#include "functions.inc"
#declare FlowerPattern =
function {
pattern {
radial
scallop_wave frequency 6 // shape and number of petals
rotate 90*x
}
}
isosurface {
function {
(x*x+y*y+z*z*20) // sphere shape
-
FlowerPattern(x,y,z)
+ f_noise3d(x*6,y*6,0)*0.5
}
contained_by {
box {<-1,-1,0>,<1,1,0.4>}
}
open
max_gradient 20
pigment {
cylindrical
color_map {
[0.2 color rgb <1,0.7,0.7>]
[0.25 color rgb <1,1,1>]
}
rotate x*90
}
}
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Patrick Elliott wrote:
>In theory:
>
>http://mathworld.wolfram.com/StarrRose.html
>
>However, since they don't actually provide the equations for it, but
>simply assume you know how to derive it from the 2D calcs in:
>
>http://mathworld.wolfram.com/Rose.html
>
You can extend 2D polar functions to 3D in a variety of ways. One is via
spherical products.
See:
http://news.povray.org/povray.binaries.images/32476/
for a few examples. I use Ingo's "param.inc" and turn everything into
meshes, since it's faster, but you could also use the "parametric" object
from POVRay.
I don't know if this will give you what you want, but it does give some
rather interesting "3D mathematical flowers."
Dave Matthews
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Does anyone know where I might find a dxf or obj model of, say, a
lotus? I don't understand half of the math that was just thrown around
here, and I can't afford the one patch modeller I've been able to find
for the Mac.
A.D.B
"Anthony D. Baye" wrote:
> Does anybody know how to design a flower using an IsoSurface? (Is this
> even possible?)
> I only need the flower itself, not the stem.
>
> Anthony D. Baye.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Wasn't it Patrick Elliott who wrote:
>
>In theory:
>
>http://mathworld.wolfram.com/StarrRose.html
>
>However, since they don't actually provide the equations for it, but
>simply assume you know how to derive it from the 2D calcs in:
They do give the method for producing the Maurer Rose
http://icl.pku.edu.cn/yujs/MathWorld/math/m/m108.htm
which can be achieved in POV like this. My guess is that the Starr Rose
just uses some other stepping algorithm, but I can't guess what. I think
the 3d effect of the Starr is an optical illusion, and that it's
actually flat like the Maurer.
This doesn't seem to be moving in the direction of isosurface flowers.
#version 3.5;
global_settings {assumed_gamma 1.0}
camera {location <0,0,-9> look_at <0,0,0> angle 50}
background {rgb 1}
light_source {<-30, 100, -30> color rgb 1}
// ----------------------------------------
// The parameters a, n and d are the same as those on
// http://mathworld.wolfram.com/Rose.html
// and
// http://icl.pku.edu.cn/yujs/MathWorld/math/m/m108.htm
// i.e. a = scale
// n = petal number
// d = step length in degrees
//
// Lines = number of lines to be drawn
// Width = width of line
//
#macro Maurer(a,n,d,Lines,Width)
union {
#local rad=radians(d);
#local T=0;
#while (T < 2*pi)
#local r=a * sin(n*T);
#local X=r*sin(T);
#local Y=r*cos(T);
#local r2=a * sin(n*T+rad);
#local X2=r2*sin(T+rad);
#local Y2=r2*cos(T+rad);
#if (X!=X2 | Y!=Y2)
cylinder {<X,Y,0>,<X2,Y2,0>,Width}
#end
#local T=T+2*pi/Lines;
#end
}
#end
object {Maurer(2.1,4,120,360,0.005)
pigment {rgb 0}
translate -2*x
}
object {Maurer(2.1,6,72,360,0.005)
pigment {rgb 0}
translate 2*x
}
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
In article <KwnOiDA022l$EwP5@econym.demon.co.uk>,
nos### [at] econymdemoncouk says...
> Wasn't it Patrick Elliott who wrote:
>
> >In my case I am trying to do something like:
> >
> >N = 5 * rnd
> >vdelta = 2 * PI * rnd
> >vector = a * sin(N * vdelta)
> >X = cos(vector) * 30
> >Y = sin(vector) * 30
> >
> >The problem is all I get is a dang circle... It is driving me batty. If
> >it was for something in POV, it would be driving me even more nuts. But
> >man would the StarrRose make a real nice Isosurface. Sigh...
>
> I think that N should be a constant (it's the number of petals or half
> the number of petals depending on whether it's odd or even) and X and Y
> should be cos(vdelta)*vector and sin(vdelta)*vector. "a" is a scaling
> factor, the maximum radius of the whole shape
>
> So:-
>
> #version 3.5;
> global_settings {assumed_gamma 1.0}
> camera {location <0,0,-10> look_at <0,0,0> angle 50}
> background {rgb 1}
> light_source {<-30, 100, -30> color rgb 1}
>
> #declare rnd=0;
> #declare N = 5;
> #declare a=3;
> #while (rnd < 1)
> #declare vdelta = 2 * pi * rnd;
> #declare vector = a * sin(N * vdelta);
> #declare X = cos(vdelta) * vector;
> #declare Y = sin(vdelta) * vector;
> sphere {<X,Y,0>,0.2 pigment {rgb <1,1,0>}}
> #declare rnd = rnd + 0.001;
> #end
Heh! That works. Was screwed up on the correct way to convert polar to
rectangular. :p
>
> If we bung the significant bit "vector = a * sin(N * vdelta)" into an
> isosurface it looks like this "a * sin(N * f_th(x,z,y))", which doesn't
> do anything useful on it's own but suggests something like this:-
>
> #version 3.5;
> global_settings {assumed_gamma 1.0}
> camera { location <-1, 1, -6> look_at <0, 0, 0> angle 50}
> background {rgb 1}
> light_source {<-30, 100, -30> color rgb 1}
> #include "functions.inc"
>
> #declare n = 5;
> #declare a = 2;
> isosurface {
> function { a * sin(n*f_th(x,z,y)) * f_sphere(x,y,z,a) + 0.1}
> max_gradient 20
> contained_by{sphere{0,a}}
> pigment {rgb .9}
> finish {phong 0.5 phong_size 10}
> }
>
Yeah. I wondered about shoe horning a useful Z axis into that. The
StarrRose uses a, b and c as scales, which I think implies it already
accounts for z, but lacking the equations to define how those are used...
:p
Like I said though, my own problem wasn't for use in POV, I just thought
I would ask about it, since the two things are closely related, at least
with respect to the basic equations. I am actually designing an ActiveX
control that generates a 2D firework. The X and Y are used as velocity
vectors so that all the points starts at a central position and drift
outward, losing X velocity slightly and gaining Y velocity towards the
ground with each time is draws. Works nice for stuff I could make work
right, but I completely missed the obvious fact that with X = cos(Delta)
* r and Y = sin(Delta) * r, r was actually what I had as 'vector'.
Sigh... Shows you how much I know about math..
However, I stand by the statement that, as a reference sight for
equations, the fact that this site seem to be the 'only' one with a
decent list doesn't mean it is a complete or accurate one. I would love
to actually know how they got that StarrRose. :(
--
void main () {
call functional_code()
else
call crash_windows();
}
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
In article <rd7WpEAGW7l$EwZc@econym.demon.co.uk>,
nos### [at] econymdemoncouk says...
> Wasn't it Patrick Elliott who wrote:
> >
> >In theory:
> >
> >http://mathworld.wolfram.com/StarrRose.html
> >
> >However, since they don't actually provide the equations for it, but
> >simply assume you know how to derive it from the 2D calcs in:
>
> They do give the method for producing the Maurer Rose
> http://icl.pku.edu.cn/yujs/MathWorld/math/m/m108.htm
> which can be achieved in POV like this. My guess is that the Starr Rose
> just uses some other stepping algorithm, but I can't guess what. I think
> the 3d effect of the Starr is an optical illusion, and that it's
> actually flat like the Maurer.
>
> This doesn't seem to be moving in the direction of isosurface flowers.
>
Yeah. Someone that is a math wiz suggested that may be the case. I think
if you knew what you where doing you could fudge it though. Use one of
those calcs that produce:
---\
\---
for the z axis some how with the current radius from the center defining
where on that path the point lies. I have no clue how to manage it
though. However, I would think it would be possible. How well it
would works is another matter.
--
void main () {
call functional_code()
else
call crash_windows();
}
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Wasn't it Patrick Elliott who wrote:
> I would love to actually know how they got that StarrRose. :(
If you feel strongly enough about it to go out and buy the book that
they got the equation from, then perhaps you could let us know.
--
Mike Williams
Gentleman of Leisure
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|