|
|
Josh English wrote:
>
> You want to use the CSG (Constructive Solid Geometry) functions union or
> merge, as in:
>
> union { cylinder { <-2,0,0> <0,0,0> 1 }
> sphere { <0,0,0> 1 }
> cone { <0,0,0> 1 <0,2,0> 2 }
> pigment { red 1 }
> }
>
> this is, of course, merely an example. You can replace union with merge,
> but this example wouldn't show the difference. It is more noticable with
> semi transparent color.
>
> Also be sure to check the docs. The first tutorial will take you through
> the basics in a very well written manner.
>
> Fishflake wrote:
>
> > How can u connect a cone,sphere, and cylinder (spelling bad) to where
> > they look like the same thing.
If you mean that you want the connection to be smooth, it is a bit trickier.
The best bet is a macro. Try this example:
// Begin POV code
// Linkage.pov - demonstrate Linkage macro
#version 3.1;
global_settings { assumed_gamma 1.0 ambient_light <.846, 1.041, 1.041> }
camera { up <0, 1, 0> right <4 / 3, 0, 0>
location <0, 0, -20> look_at <0, 0, 0> }
light_source { <20, 50, -100> color rgb <1.103, .993, .772> }
#include "colors.inc"
sky_sphere { pigment { color rgb <.846, 1.041, 1.041> } }
#macro Linkage(Cyllen, Conemajrad, Conelen, Coneminrad)
#local Conetan = ((Conelen = 0) ? 0 : (Conemajrad - Coneminrad)
/ Conelen);
#local Majoff = Conemajrad * Conetan;
#local Minoff = Coneminrad * Conetan;
#local Cylrad = ((Conetan = 0) ? Conemajrad : sqrt((Conemajrad
* Conemajrad) + (Majoff * Majoff)));
#local Litsphrad = ((Conetan = 0) ? Conemajrad : sqrt((Coneminrad *
Coneminrad) + (Minoff * Minoff)));
#local Len = Cylrad + Cyllen + Majoff + Conelen - Minoff + Litsphrad;
#local Cylbot = Cylrad - Len / 2;
#local Cyltop = Cylbot + Cyllen;
#local Conebot = Cyltop + Majoff;
#local Conetop = Conebot + Conelen;
#local Litsphloc = Conetop - Minoff;
union
{
sphere { <0, Cylbot, 0>, Cylrad }
cylinder { <0, Cylbot, 0>, <0, Cyltop, 0>, Cylrad }
sphere { <0, Cyltop, 0>, Cylrad }
cone { <0, Conebot, 0>, Conemajrad, <0, Conetop, 0>, Coneminrad }
sphere { <0, Litsphloc, 0>, Litsphrad }
}
#end
object
{
Linkage(3, 4, 5, 1)
texture
{
pigment
{
gradient y
color_map
{
[ 0 color Red ]
[ .2 color Yellow ]
[ .4 color Green ]
[ .6 color Cyan ]
[ .8 color Blue ]
[ 1 color Magenta ]
}
scale <1, 15, 1>
translate <0, -7, 0>
}
finish { specular 1 roughness .001 crand .1 }
}
}
// End POV code
If you want to attach a cylinder to the *small* end of the cone, it is a bit
more complicated to do it smoothly. If you need it, let me know and I will try
to cobble something together.
Jerry Anning
cle### [at] dholcom
Post a reply to this message
|
|