![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Warp wrote:
>
> Christoph Hormann <chr### [at] gmx de> wrote:
> > Not being able to use splines in isosurface functions would be really bad
> > IMO.
>
> How do you use splines in isosurface functions?
http://www.econym.demon.co.uk/isotut/more.htm
--
Ken Tyler
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
"Warp" wrote:
> Rune wrote:
> > But for basic spline usage, the syntax and use
> > is much easier with the spline{} feature.
>
> I strongly disagree.
> Suppose that you are making a spline with
> evenly-distributed time values:
You keep talking about evenly distributed values. Suppose you want UNevenly
distributed values. That's *impossible* if you don't use the spline feature!
If you do want evenly distributed values, use a macro that takes an array as
input and fills in the time values for you. There you go, an easy solution
both with and without evenly distributed values. Tell me again how you do
that without the spline feature?
> Using the current spline syntax is certainly not
> "much easier". In fact, it's a lot more tedious and
> difficult.
If you refuse to use a macro to fill in evenly distributed time values, then
you're right. But why would you do that?
Rune
--
3D images and anims, include files, tutorials and more:
Rune's World: http://rsj.mobilixnet.dk (updated Feb 16)
POV-Ray Users: http://rsj.mobilixnet.dk/povrayusers/
POV-Ray Webring: http://webring.povray.co.uk
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Warp <war### [at] tag povray org> wrote in news:3c761b7b@news.povray.org:
> But with an existing macro you can achieve the same thing with a lot
> less work. For example:
>
> #declare Points = array[6]
> { <1,1,1>, <2,2,2>, <3,3,3>, <3.5,3.5,3.5>, <4,4,4>, <5,5,5> }
>
> CreateSpline(Points)
Quoted code is from your own post:
#macro CreateSpline(cspoints)
// Keep parameter names lowercase to prevent
// name collisions with functions and other macros.
> spline
> { cubic_spline
> #declare Ind = 0;
#declare EndInd = dimension_size(cspoints, 1)-1;
> #while(Ind <= EndInd)
Ind/EndInd, cspoints[Ind]
> #declare Ind = Ind+1;
> #end
> }
#end
> Using the current spline syntax is certainly not "much easier". In
> fact, it's a lot more tedious and difficult.
Macros will fix that.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Warp <war### [at] tag povray org> wrote in message news:3c75fe70@news.povray.org...
> Why have an unfinished internal implementation with a lot to be desired
> when there are excellent spline include files out there which support the
> same features and a lot more, and are even easier to use?
Because I can accelerate and decelerate (or not) across the spline the way
that I want to.
Because I really like the form of the natural spline (this may be part of
the includes you mentioned.)
-Shay
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Warp wrote in message <3c7601ff@news.povray.org>...
> By the way, any chance of making the time values optional?
> Forced time values are a real bother, and they usually cause more trouble
>than they are worth.
No. The time for feature requests is over, particularly for difficult
feature requests such as this.
--
Mark
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
"Mark Wagner" wrote:
> The time for feature requests is over, particularly
> for difficult feature requests such as this.
As long as the feature is marked as experimental there's still hope for
future versions of POV-Ray... ;)
Rune
--
3D images and anims, include files, tutorials and more:
Rune's World: http://rsj.mobilixnet.dk (updated Feb 16)
POV-Ray Users: http://rsj.mobilixnet.dk/povrayusers/
POV-Ray Webring: http://webring.povray.co.uk
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
In article <3c761b7b@news.povray.org>, Warp <war### [at] tag povray org>
wrote:
> I strongly disagree.
So do I.
> Suppose that you are making a spline with evenly-distributed time values:
Suppose you aren't.
I agree that this would be a nice option, but it isn't possible right
now, and macro solutions are available. In the meantime, having the time
values user-defined is far better than the spline forcing its own
distribution. I generally don't construct splines the way you do, I
define a few points that I want the spline to reach by a certain time,
and fill in the blanks. The current syntax makes that quite easy, I can
take a straight segment and add all sorts of loops and twists without
having to add points elsewhere just to keep the distribution right. And
the spline syntax has room for plenty of future extension. As it is now,
it can provide a useful base for many spline macros, and is capable of
many things macros can't do.
--
Christopher James Huff <chr### [at] mac com>
POV-Ray TAG e-mail: chr### [at] tag povray org
TAG web site: http://tag.povray.org/
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
In article <3c75fe70@news.povray.org>, Warp <war### [at] tag povray org>
wrote:
> Why have an unfinished internal implementation with a lot to be desired
> when there are excellent spline include files out there which support the
> same features and a lot more, and are even easier to use?
I haven't seen any that are as easy to use, none that can do all the
same things (the big limitation: spline functions). And all will be a
lot slower. There's room for improvement, but what's there is a good
start, and is very useful as is.
--
Christopher James Huff <chr### [at] mac com>
POV-Ray TAG e-mail: chr### [at] tag povray org
TAG web site: http://tag.povray.org/
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Rune <run### [at] mobilixnet dk> wrote:
> If you do want evenly distributed values, use a macro that takes an array as
> input and fills in the time values for you.
That's what I am doing right now. I'm using Colefax's spline macros.
> There you go, an easy solution
> both with and without evenly distributed values. Tell me again how you do
> that without the spline feature?
You didn't get my point: I was complaining about *forcing* each time value
to be specifically written.
My suggestion was that time values were *optional*, and if a time value
for a certain point is not given, it's calculated automatically by
interpolation/extrapolation.
This would make splines a lot nicer to use.
--
#macro N(D)#if(D>99)cylinder{M()#local D=div(D,104);M().5,2pigment{rgb M()}}
N(D)#end#end#macro M()<mod(D,13)-6mod(div(D,13)8)-3,10>#end blob{
N(11117333955)N(4254934330)N(3900569407)N(7382340)N(3358)N(970)}// - Warp -
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Christoph Hormann <chr### [at] gmx de> wrote:
> http://www.econym.demon.co.uk/isotut/more.htm
That's a very clever use for it.
--
#macro N(D)#if(D>99)cylinder{M()#local D=div(D,104);M().5,2pigment{rgb M()}}
N(D)#end#end#macro M()<mod(D,13)-6mod(div(D,13)8)-3,10>#end blob{
N(11117333955)N(4254934330)N(3900569407)N(7382340)N(3358)N(970)}// - Warp -
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |