POV-Ray : Newsgroups : povray.binaries.images : 2,296 grains : Re: 2,296 grains Server Time
17 May 2024 06:54:17 EDT (-0400)
  Re: 2,296 grains  
From: Trevor G Quayle
Date: 8 Apr 2011 10:00:01
Message: <web.4d9f13bf6e76f0aa81c811d20@news.povray.org>
"Trevor G Quayle" <Tin### [at] hotmailcom> wrote:
> > > Sorry, perhaps it was paraboloid, it's been a while and I didn't look it up
> > > first...
> > >
> > > Odd , I can't find anything that relates the relationship so simply anymore at
> > > present.  As you said, all the descriptions seem very complex to parse and
> > > figure out the exact meaning.
> >
> > Yeah. Authors of such articles seem to only touch upon construction
> > methods... What is the parabola exactly? A dense point curve or a pure
> > function?
>
> Pure function: f(y)= x^2 + z^2
>
> > > I actually had set up some simple
> > > mathematics to calculate this and display as a graph in excel at the time and it
> > > seemed to work.
> >
> > Wow, Excel uses Visual Basic, right? How did you view it? I always
> > thought Excel's VB support was crudimentary, at best.
> >
>
> No, I did it the difficult way: direct calculation of intersectiong lines then
> intersecting points, then used the general x-y graphing to display it.  A lot of
> maths, that's why I only did it for a few points (3 or 4 I think it was)
>
> > > An interseting approach in POV would be to construct it directly in POV.  You
> > > could take an array of each point and calculate the tangent plane for each
> > > point, then create it as a plane object.  Give each plane a slightly different
> > > colour value then do a simple intersection operation and view using orthographic
> > > camera.  Using direct RGB values, you could theoretically create one for up to
> > > 16,777,216 (256^3) points (could probably do higher with HDR file type).  Of
> > > course this would be only valid for a 2D set, and I'm not sure how render time
> > > would be...  Perhaps it's time to test this out.
> >
> > Dude, if you can do /that/, then you've made a full-POV-SDL
> > implementation of Voronoi cell computation. It may not be the fastest
> > way to go about it, but it's a step in the right direction.
>
> It is only for a 2D array...  The easiest way would be to get an image based on
> it, from there it would be trying to convert that directly to a function or some
> way to evaluate directly.
>
>
> -tgq

Very simple demonstration of this concept.

-tgq

//START
camera {
  orthographic
  location <0, 3.5, 0>
  look_at <0, 0, 0>
  right x*1.2
  up y*1.2
}

#declare C=0.001;//Flattens out paraboloid for viewing

#declare NumP=16;
#declare RS=seed(1);

#declare PT=array[NumP];

#for (i,0,NumP-1)//Pick random points <0,0,0>-<1,0,1>
  #declare PT[i]=<rand(RS),0,rand(RS)>;
#end

union{
  #for (i,0,NumP-1)
    #declare xx=PT[i].x;
    #declare zz=PT[i].z;
    #declare V3=<-2*xx*C,1,-2*zz*C>*(pow(xx,2)+pow(zz,2))*C; //Paraboloid
surface normal at projected point
    plane{V3,0 //plane oriented to normal
      pigment{rgb i/NumP} //color by index
      finish{ambient 0 emission 1 diffuse 0}
      translate <xx,(xx*xx+zz*zz)*C,zz> //  translate to projected point on
paraboloid
    }

    cylinder{0,y*(xx*xx+zz*zz)*C*1.1,0.01 //draw point
      pigment{rgb <1,0,0>}
      finish{ambient 0 emission 1 diffuse 0}
      translate <xx,0,zz>
    }


  #end
  translate <-0.5,0,-0.5>
}
//END


Post a reply to this message


Attachments:
Download 'voron.png' (17 KB)

Preview of image 'voron.png'
voron.png


 

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