POV-Ray : Newsgroups : povray.binaries.images : True catenary Server Time
7 May 2024 11:58:03 EDT (-0400)
  True catenary (Message 9 to 18 of 18)  
<<< Previous 8 Messages Goto Initial 10 Messages
From: Alain
Subject: Re: True catenary
Date: 1 Aug 2005 19:48:24
Message: <42eeb4c8$1@news.povray.org>
Ross nous apporta ses lumieres en ce 2005-08-01 12:00:

> 
> Cool cool. I think about this occasionally, probably everytime i see a
> cosh()  for some reason. This is the same curve that would describe wires
> between telephone poles, right?
> 
> anyway, neat work. i await the realistic glass render although the fake
> glass looked pretty too :)
> 
> 
> 
This is indeed the curve of any whire, string, rope or chain suspended between two
points. This 
assuming that the whire is not to stiff relative to it's weith and length.

Alain


Post a reply to this message

From: PM 2Ring
Subject: Re: True catenary
Date: 5 Aug 2005 03:45:01
Message: <web.42f318b55de03cffad93754b0@news.povray.org>
"Ross" <rli### [at] everestkcnet> wrote:
> "PM 2Ring" <nomail@nomail> wrote in message
> news:web.42edf3bf208413009143b5c90@news.povray.org...
> > The catenary is the curve formed by a homogeneous chain suspended between
> > two points in a uniform gravity field. It looks like a parabola, but it's
> > mathematically quite different. The equation of a parabola is just
> >  y = a*x*x, a simple quadratic, whereas a catenary is
> >  y = a*cosh(x/a), a transcendental equation.
> >
> > I had occasion to look at Chris Colefax's chain building code in
> "Linc.inc",
> > after referring a new user to it, and was dismayed to discover that Chris
> > used quadratics to build his chains. :(
> >
> > The Chain() macro below constructs a true catenary. This is a preliminary
> > draft, so there are no docs as yet, sorry. Read the comments for hints. :)
> >
> > Any questions and comments are most welcome. Have fun!
>
> Cool cool. I think about this occasionally, probably everytime i see a
> cosh()  for some reason. This is the same curve that would describe wires
> between telephone poles, right?

Yes, and catenary arches are very strong, too. Also, a catenary rotated
around the X-axis makes a catenoid, the shape of a soap-film between a pair
of parallel circular loops.

> anyway, neat work. i await the realistic glass render although the fake
> glass looked pretty too :)

Here's a more realistic one, with radiosity & dispersion. I'm doing one now
with photons; I assume it will take all weekend.


Post a reply to this message


Attachments:
Download 'catenaryea1.jpg' (78 KB)

Preview of image 'catenaryea1.jpg'
catenaryea1.jpg


 

From: PM 2Ring
Subject: Re: True catenary
Date: 5 Aug 2005 05:40:01
Message: <web.42f332855de03cffa196ebe30@news.povray.org>
"scott" <sco### [at] spamcom> wrote:
> PM 2Ring wrote:
> > The catenary is the curve formed by a homogeneous chain suspended
> > between two points in a uniform gravity field. It looks like a
> > parabola, but it's mathematically quite different. The equation of a
> >  parabola is just y = a*x*x, a simple quadratic, whereas a catenary is
> >  y = a*cosh(x/a), a transcendental equation.

> How about a comparison between the two for different length chains between
> two points?

Here are two sets of comparisons between parabolas & catenaries, suspended
between the same two points, passing through the same lowest point (almost
:). It was too hard to do them with equal length chains: the _LN_length
parameter in Link.inc does weird things...

The blue chains are parabolas, the red chains are catenaries, using these
links objects:

#declare SC = 0.02;
#declare RodC = cylinder{-x, x, 1 pigment{checker rgb x,rgbt 1} scale SC}
#declare RodP = cylinder{-x, x, 1 pigment{checker rgb z,rgbt 1} scale SC}

I won't post the full source, it's a bit ugly.


Post a reply to this message


Attachments:
Download 'catenaryi3.jpg' (188 KB)

Preview of image 'catenaryi3.jpg'
catenaryi3.jpg


 

From: PM 2Ring
Subject: Re: True catenary
Date: 5 Aug 2005 05:40:02
Message: <web.42f333ad5de03cffa196ebe30@news.povray.org>
"scott" <sco### [at] spamcom> wrote:

> How about a comparison between the two for different length chains between
> two points?

And here is the other comparison.


Post a reply to this message


Attachments:
Download 'catenaryi4.jpg' (145 KB)

Preview of image 'catenaryi4.jpg'
catenaryi4.jpg


 

From: scott
Subject: Re: True catenary
Date: 5 Aug 2005 05:44:30
Message: <42f334fe$1@news.povray.org>
PM 2Ring wrote:
> "scott" <sco### [at] spamcom> wrote:
>
>> How about a comparison between the two for different length chains
>> between two points?
>
> And here is the other comparison.

THat's interesting.  It's probably better to do it with equal bottom point
rather than equal length, it makes it easier to see the difference in shape.
It's not surprising that the catenary one looks like someone is pushing down
in the middle of the parabola version...


Post a reply to this message

From: PM 2Ring
Subject: Re: True catenary
Date: 12 Aug 2005 07:10:01
Message: <web.42fc7e285de03cffba8a7c6f0@news.povray.org>
This chain uses an interesting texture posted by Ross a few months ago.
See thread containing Message: <42c5bb9d@news.povray.org> for details

//Chain making macro
#include "Catenary.inc"

#declare Use_Normal = 1;

#declare Shiny = finish {ambient 0 specular 1 roughness 0.003 diffuse 0.3
reflection {0.2, 0.4 fresnel on} }
#declare Dull= finish {ambient 0 specular 0.6 roughness 0.03 diffuse 0.3 }

#declare Turb = <0.34, 0.3, 0.7>;

//Create a multi-warped pattern
#macro Pat(Step)
    leopard scale 0.15
    #local I = Step;
    #while (I > 0)
      warp {repeat x flip y}
      warp {turbulence Turb}
      scale 1.2
      #local I = I - 1;
    #end
#end

//Create texture using multi-warped pattern for normals & texture_map
#macro Tex(Step)
  #local fnPat = function {pattern {Pat(Step)}}
  #local n1 = normal {function {fnPat(x, y, z)} bump_size 2}

  #local t1 = texture {pigment {rgb 1} finish {Shiny} #if(Use_Normal) normal
{n1} #end }
  #local t2 = texture {pigment {rgb 0.2} finish {Dull} #if(Use_Normal)
normal {n1} #end }

  function {fnPat(x, y, z)}
  texture_map {[0 t1][1 t2]}
#end

//-------------------------------------------------------------------------

//Simple chain macro. Parameters: Start point,End Point
#macro ChainQ(Start, End) Chain(Link, Start, End, Slack, Overlap, Twist)
#end

//Chain terminal post
#macro Terminal(Pos)
union{
  sphere{Pos, PostRad*1.6}
  cylinder{Pos*<1,0,1>, Pos-0.35*PostRad*y, PostRad}

  //pigment{rgb <.2, .5, 1>}
  //finish{Dull}
  //texture{Tex(8) scale PostRad}
}
#end

//Chain, with terminal at start
#macro TermChain(Start, End)
union{
  Terminal(Start)
  ChainQ(Start, End)
}
#end

//Link objects
#declare Torus = torus {.75, .175 scale 0.035*<1, 1, .65> }
#declare Torus1 = object {Torus scale 3 rotate 90*x}

//Chain parameters
#declare Link = Torus1;            //Link object
#declare Slack = 1.25;            //Slackness of the chain.
#declare Overlap = 1.65;          //Link overlap
#declare Twist = 0;               //Chain twist (in cycles)

#declare PostRad= 0.10;          //Post radius

//-------------------------------------------------------------------------

/**** test scene ****/
sky_sphere {
  pigment {
    gradient y
    color_map {
      [0.0 rgb <0.6,0.7,1.0>*.85]
      [0.6 rgb <0.0,0.1,0.8>*.75]
    }
  }
}

#declare Sandy = colour rgb <1, .80, 0.45>;

#declare PSand = pigment{
  granite scale 1e-3
  colour_map{
    [0 Sandy*.80]
    [0.5 Sandy]
    [1 Sandy*1.50]
  }
}

//Ground
plane {
  y, -1e-3
  texture {
    pigment {PSand}
    finish{ambient 0 diffuse .8 brilliance 0.75 specular 1 roughness 3e-3}
    normal{
      average
      normal_map{
        [1.5 wrinkles scale 3 bump_size 1]
        [.5 granite scale 1e-2 bump_size .75]
      }
    }
  }
}

//Points to connect
#declare V0 = <-1, 1, 0>;
#declare V1 = < 1, 1, 0>;

#if(1)
union{
  Terminal(V1)
  TermChain(V0, V1)

  texture{Tex(12) scale .5*PostRad}
}
#end

camera {
  right x*image_width/image_height up y
  direction z

  location  <0, 3*2.5, -12> * 0.375 * .275
  look_at   y*.75  * .75
  angle 30
}

light_source {<1, 5, -3.5>*50 rgb 1}

//------------------------------------------------------------


Post a reply to this message


Attachments:
Download 'rnchaina1.jpg' (79 KB)

Preview of image 'rnchaina1.jpg'
rnchaina1.jpg


 

From: PM 2Ring
Subject: Re: True catenary
Date: 12 Aug 2005 07:20:01
Message: <web.42fc82c85de03cffba8a7c6f0@news.povray.org>
Here's a closeup of the same chain, but using radiosity.


Post a reply to this message


Attachments:
Download 'rnchaina3.jpg' (56 KB)

Preview of image 'rnchaina3.jpg'
rnchaina3.jpg


 

From: PM 2Ring
Subject: Re: True catenary
Date: 15 Aug 2005 03:35:01
Message: <web.4300447b5de03cffad93754b0@news.povray.org>
> > anyway, neat work. i await the realistic glass render although the fake
> > glass looked pretty too :)
>
> Here's a more realistic one, with radiosity & dispersion. I'm doing one now
> with photons; I assume it will take all weekend.

I didn't like the first result I got, but this one is rather tasty, if I do
say so myself. :)


Post a reply to this message


Attachments:
Download 'catenaryec0.png' (535 KB)

Preview of image 'catenaryec0.png'
catenaryec0.png


 

From: Mike Raiford
Subject: Re: True catenary
Date: 15 Aug 2005 08:03:17
Message: <43008485$1@news.povray.org>
PM 2Ring wrote:

> I didn't like the first result I got, but this one is rather tasty, if I do
> say so myself. :)

I sooooo agree!

wow.. Nice :)

I'm still debating whether its glass or plexiglass, though. I'm leaning 
toward saying it looks like glass.

-- 
~Mike

Things! Billions of them!


Post a reply to this message

From: PM 2Ring
Subject: Re: True catenary
Date: 17 Aug 2005 03:20:00
Message: <web.4302e41d5de03cffad93754b0@news.povray.org>
Mike Raiford <mra### [at] hotmailcom> wrote:
> PM 2Ring wrote:
>
> > I didn't like the first result I got, but this one is rather tasty, if I do
> > say so myself. :)
>
> I sooooo agree!
>
> wow.. Nice :)

Thanks, Mike!
>
> I'm still debating whether its glass or plexiglass, though. I'm leaning
> toward saying it looks like glass.

It /should/ be glass; see below for the relevant parameters. I used the
two-pass method of rendering a half-size no AA version to generate the
photon & radiosity files.

I've been polishing up the Chain() macro & have written some user
documentation for it. Do you have any suggestions?

///////////////////////

global_settings {
  assumed_gamma 1.0
  #if(Use_Photons)
  photons {
    autostop 0
    count 28e4
    #if(Use_Photons=2)save_file PhotonFile #end
    #if(Use_Photons=3)load_file PhotonFile #end

  }
  #end

  #if(Use_Radio)
  radiosity{
    pretrace_end 0.01
    always_sample 1
    #if(Use_Radio=2)save_file RadioFile #end
    #if(Use_Radio=3)load_file RadioFile pretrace_end 1 always_sample 0 #end
  }
  #end

  max_trace_level 25
}

#declare TGlass0 =
texture{
  pigment{rgbf<.9, .975, 1, 1>}
  finish{F_Glass8}
}

#declare Torus1 =
object {
  Torus
  texture{TGlass0}
  //pigment{rgb x}finish{ambient 0 reflection .1 specular 1}
 interior {
  ior 1.5
  dispersion 1.05
  //dispersion_samples 5 //20
  #if(!Use_Photons) caustics 1 #end
 }

 photons {
  target 1
  refraction on
  reflection on
  collect on
 }
}

///////////////////////


Post a reply to this message

<<< Previous 8 Messages Goto Initial 10 Messages

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