Re: is the visibility of a Polygon[] exposed?
- To: mathgroup at smc.vnet.net
- Subject: [mg83709] Re: is the visibility of a Polygon[] exposed?
- From: m.r at inbox.ru
- Date: Wed, 28 Nov 2007 05:48:50 -0500 (EST)
- References: <figuou$foo$1@smc.vnet.net>
On Nov 27, 5:24 am, congruentialumina... at yahoo.com wrote:
> Hello Mathematica UG:
>
> Is it possible for my code to tell if a Polygon (in my graphics
> object) is visible?
>
> I assume that this is based upon (or is affected by) the ViewPoint->
> setting.
>
> Further, I assume that the kernel is deriving this somewhere to do
> rendering. Do I have any access to this?
>
> If I evaluate:
>
> q = PolyhedronData["SnubCube"]
>
> I can see the component Polygon[] and GraphicsComplex[] objects that
> make up the Graphics3D[]. I want to make a code decision based on
> whether a face is showing.
>
> TIA.
>
> Regards..Roger W.
This doesn't look perfect because it draws every edge twice, but it
gives a general idea:
DynamicModule[{gr, p, cent},
{p, cent} = {Max@ #, Mean@ #}&@
N@ PolyhedronData["SnubCube", "VertexCoordinates"];
p *= 2 {1.3, -2.4, 2.};
gr = PolyhedronData["SnubCube", "Faces"] // N // Normal;
gr = gr /. Polygon[L_?MatrixQ, ___] :>
{Dynamic@ If[Det@
{L[[2]] - L[[1]], L[[3]] - L[[1]], p - cent - L[[1]]} >= 0,
Thick, Dashed],
Line@ Append[L, L[[1]]]};
Graphics3D[gr, Boxed -> False,
ViewCenter -> Dynamic[Automatic, None],
ViewVector -> Dynamic@ {p, cent}]
]
Maxim Rytin
m.r at inbox.ru