Re: Displaying cylinders

*To*: mathgroup at smc.vnet.net*Subject*: [mg110844] Re: Displaying cylinders*From*: Albert Retey <awnl at gmx-topmail.de>*Date*: Thu, 8 Jul 2010 06:50:09 -0400 (EDT)*References*: <i13trd$7hu$1@smc.vnet.net>

Am 08.07.2010 09:13, schrieb S. B. Gray: > I have displays like this: > > th = .01; > cp1 = { 1, -1, 2}; > cp2 = { 2, 0, 1}; > cp3 = {-1, 3, 2}; > Graphics3D[{Opacity[.4], > Yellow, Cylinder[{cp1, cp1 + {th, -th, th}}, 12], > Green, Cylinder[{cp2, cp2 - {th, th, -th}}, 15], > Red, Cylinder[{cp3, cp3 + {-th, -th, -th}}, 12]}, > Boxed -> False] > > but the cylinders are stand-ins for what I really want, which is circles > in 3D. (I would like a 3D circle primitive with circles defined by three > points, rather than the way cylinders are specified.) > > The smallest number of circles in the actual application is 20, so it is > almost impossible to see how they interact, no matter what Opacity is > set to. It would be much better if I could make the edges thicker and > opaque (with EdgeForm), and have the cylinder ends or sides transparent. > That way the edges (rings or circles) would occlude each other so it > would be clear what is in front of what. So far as I know, the edges > cannot be contolled separately. If you set "th" to a higher value, you > get a double ring which is really the cylinder side, which also cannot > be given its own Opacity. I think I am missing your point, the following does what you described and seems to work, is it something else that you want? th = .01; cp1 = {1, -1, 2}; cp2 = {2, 0, 1}; cp3 = {-1, 3, 2}; Graphics3D[{ Opacity[0], EdgeForm[Directive[Opacity[1], Thickness[th], Yellow]], Cylinder[{cp1, cp1 + {th, -th, th}}, 12], EdgeForm[Directive[Opacity[1], Thickness[th], Green]], Cylinder[{cp2, cp2 - {th, th, -th}}, 15], EdgeForm[Directive[Opacity[1], Thickness[th], Red]], Cylinder[{cp3, cp3 + {-th, -th, -th}}, 12] }, Boxed -> False] I have included Opacity in EdgeForm to show that this works, but of course with a value of 1 you could just as well omit it... hth, albert