Re: A Question About Directive
- To: mathgroup at smc.vnet.net
- Subject: [mg111237] Re: A Question About Directive
- From: "Kevin J. McCann" <Kevin.McCann at umbc.edu>
- Date: Sat, 24 Jul 2010 05:09:08 -0400 (EDT)
- References: <i293pl$m64$1@smc.vnet.net> <i2btc7$bcc$1@smc.vnet.net>
Mark, I'll agree that your example with the use of the Inner product is a clever way to do that, but isn't this way more readable? Graphics[{ Red,PointSize[Large],Point[{0,0}], Blue,PointSize[Medium],Point[{1,0}] }, AspectRatio->1/10] Seems like a lot of overhead with the use of Inner and Directive. But if you prefer more keystrokes and the use of two additional functions (Inner, Directive) Graphics[ Inner[List, { Directive[Red, PointSize[Large]], Directive[Blue, PointSize[Medium]] }, {Point[{0, 0}], Point[{1, 0}]}, List], AspectRatio -> 1/10] then have at it ;) Kevin Mark McClure wrote: > On Thu, Jul 22, 2010 at 10:01 AM, Kevin J. McCann <Kevin.McCann at umbc.edu> w= > rote: >> A couple have responded with something like Mark's example below. Is this >> really worth a new function and more keystrokes over: >> >> Plot[{Cos[x], Sin[x]}, {x, 0, 2 Pi}, >> PlotStyle -> {{Thick, Red}}] > > > I still rather like Directive, primarily due to it's clarity. It > certainly follows Wolfram's TypeExactlyWhatYouMean philosophy. > >>From a programmatic perspective, it can be convenient to encase > directives in a head other than List. It makes it easier to use Cases > or DeleteCases to scan for directives, for example. > > Here's an example where we use Inner to combine some graphics > primitives and graphics directives. The fact that the head Directive > is different from the head List is essential. I don't think you can > change the Directive head to either a List or nested Lists. > > Graphics[ > Inner[List, { > Directive[Red, PointSize[Large]], > Directive[Blue, PointSize[Medium]] > }, > {Point[{0, 0}], Point[{1, 0}]}, > List], > AspectRatio -> 1/10] > > Of course, if you prefer Lists when appropriate, then have at it! :) > > Mark >