Re: Graphics3D polygon face colors
- To: mathgroup at smc.vnet.net
- Subject: [mg65085] Re: Graphics3D polygon face colors
- From: "J Siehler" <jsiehler at gmail.com>
- Date: Tue, 14 Mar 2006 06:00:03 -0500 (EST)
- Organization: http://groups.google.com
- References: <NDBBJGNHKLMPLILOIPPOGEHNEOAA.djmp@earthlink.net> <dv3083$qpf$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
AJ Friend wrote: > Hi, thanks for the response. My problem isn't that I want to change the > object color, I want to have the values of the colors of the faces so > that I can use them elsewhere. I am taking each face from a polyhedron > and displaying it as a flat polygon, but I want the polygon to have the > same color as it has on the polyhedron (the outside face, specifically). > Any ideas on how to do such a thing? Well, this is tricky, but here's a start. Use DisplayString applied to your graphics object to get the low-level postscript code for it. You'll find lots of lines that look like 0.123 0.707 0.542 r which are abbreviated RGB color commands. You need to pick these out of the display string. That's not hard, but matching them up to their corresponding polygons will take a little more work than I can do offhand right now. But, for example, here you can make a list of random triangles and extract all the different face colors that were used (there's a lot of redundancy). p = Table[Random[Real, {0, 1}], {8}, {3}, {3}]; polys = Graphics3D[Polygon /@ p]; colors = RGBColor @@ Take[ StringSplit[#], 3] & /@ Select[StringSplit[DisplayString[polys], "\n"], \ MatchQ[StringSplit[#], {a___, "r"}] &]