| 
  | 
Hello friends
 Imagine this; a hollow torus with simple geometric shapes (Triangles,
circles...ect.) cut into or raised in relief from its surface. The question I
ask is how does one figure out the coordinates to create either clipped_by
objects, splines or prisms of the afore mentioned shapes that follow the curve
of the torus' minor radius?
 Hope this makes sense.
 Thanks
 
 Post a reply to this message 
 | 
  | 
 | 
  | 
Le 18/10/2010 02:37, tgl a écrit :
>  Hello friends
>  Imagine this; a hollow torus with simple geometric shapes (Triangles,
> circles...ect.) cut into or raised in relief from its surface.
You mean intersecting  prism (linear_sweep or conic_sweep, it's up to
you), cylinder (or cone ?), etc... right ?
> The question I
> ask is how does one figure out the coordinates to create either clipped_by
> objects, splines or prisms of the afore mentioned shapes that follow the curve
> of the torus' minor radius?
You just don't. You use a CSG instead and voilà.
If you really need the coordinates, it's easy to know that the equation
of a torus is
 x = (R+r.cos(v)).cos(u)
 y = R.sin(v)
 z = (R+r.cos(v)).sin(u)
with u,v in [0,2.pi[
Then you have to compute the intersection... which usually ends up as an
additional equation between u & v, so that you keep only one moving
variable (either u or v, or maybe a predecessor like t with u=f(t) and
v=g(t)
)
For instance, if you want a crisps (br)/chips (us), you could go for
intersection {
  difference {
  torus { 4,1 }
  torus { 4,0.8 }   /* thickness = 0.2 */
  }
  cylinder { 4*x,4*x+1.2*y,0.7 }
}
>  Hope this makes sense.
>  Thanks
> 
> 
Of course, you put the cylinder/... wherever you want to match your circle.
Here a full illustration:
light_source {
  <10, 10, 10>      // position of the light source
  color rgb 1.0     // color of the light
}
#default{ finish {ambient 1.0 }  }
#include "finish.inc"
intersection {
  difference {
  torus { 4,1 }
  torus { 4,0.8 }   /* thickness = 0.2 */
  }
  cylinder { 4*x,4*x+1.2*y,0.7 }
  texture { pigment { color rgb <1,0.5,1> }
  finish { Dull }
  }
}
      // perspective (default) camera
camera {
  location  <0.0, 7.0, -0.0>
  look_at   <4.0, 0.0,  0.0>
  right     x*image_width/image_height
}
-- 
A: Because it messes up the order in which people normally read text.<br/>
Q: Why is it such a bad thing?<br/>
A: Top-posting.<br/>
Q: What is the most annoying thing on usenet and in e-mail?
 Post a reply to this message 
 | 
  |