[Date Index]
[Thread Index]
[Author Index]
Re: Aligning 2 Sets of Axes at {0,0}; Rotated & Standard Position
*To*: mathgroup at smc.vnet.net
*Subject*: [mg123175] Re: Aligning 2 Sets of Axes at {0,0}; Rotated & Standard Position
*From*: DrMajorBob <btreat1 at austin.rr.com>
*Date*: Fri, 25 Nov 2011 04:56:51 -0500 (EST)
*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com
Elegantly simple!
Bobby
On Thu, 24 Nov 2011 05:56:44 -0600, David Park <djmpark at comcast.net> wrote:
> Bill,
>
> There is an easy and natural way to do this with the Presentations
> application. It has the routines XTickLine and YTickLine for drawing our
> own
> tick scales, (and also TickLine3D for raising these to Graphics3D
> objects).
> XTickLine has the form:
>
> XTickLine[{xmin,xmax,yloc},{rangemin,rangemax},
> {labelstart,labelend,increment},subdivisions]
>
> with a similar form for YTickLine. We can then specify your graphic as
> follows:
>
> << Presentations`
>
> First specify the normal axes.
>
> xaxis = XTickLine[{-30, 30, 0}, {-30, 30}, {-30, 30, 10}, 5] /.
> Text[0, __] -> Sequence[];
>
> yaxis = YTickLine[{-30, 30, 0}, {-30, 30}, {-30, 30, 10}, 5] /.
> Text[0, __] -> Sequence[];
>
> where we eliminated the 0 tick value to prevent clutter around the
> origin.
> We then just draw one thing after another. We don't have to use Prolog,
> Epilog, Show, graphics level jumping or Inset.
>
> Draw2D[
> {ContourDraw[
> 17*x^2 - 48*x*y + 31*y^2 + 49 == 0, {x, -30, 30}, {y, -30, 30}],
> xaxis, yaxis,
> {Red, xaxis, yaxis} // RotateOp[36.8699 \[Degree], {0, 0}]},
> ImageSize -> 300]
>
> RotateOp is just a convenient postfix form of Rotate. Rotate by default
> rotates about the center of the graphics primitives, but a second
> parameter
> allows you to specify the rotation center.
>
>
> David Park
> djmpark at comcast.net
> http://home.comcast.net/~djmpark/
>
>
> From: Bill [mailto:WDWNORWALK at aol.com]
>
>
> Subj: Aligning Two Sets of Axes at {0,0}; Rotated and Standard Position
> in
> one plot.
>
>
> Hi:
>
> I have the following Mathematica 8.0.4 code that gives me a satisfactory
> plot:
>
> a=17;b=-48;c=31;
> (ArcTan[b/(a-c)])/2;
> N[(%)*(180/Pi)];
> Print["Majoraxis: Angle in Decimal Degrees= ",%]
> axes=Graphics[Point[{0,0}],PlotRange->{{-12,12},{-12,12}},Axes->True,AxesSty
> le->{Directive[{Red,Thin}],Directive[{Black,Thin}]},AxesLabel->{"'x","'y"},A
> spectRatio->1,ImageSize->500];
> ContourPlot[17*x^2-48*x*y+31*y^2+49==0,{x,-12,12},{y,-12,12},AspectRatio->1,
> Axes->True,AxesStyle->{Directive[{Red,Thin}],Directive[{Black,Thin}]},AxesLa
> bel->{"X","Y"},Background->LightGray,ImageSize->500,Prolog->Inset[Rotate[Gra
> phics[axes],36.8699Degree],{.1,.7}]]
>
> However, my objective here is to combine the two plots with the two sets
> of
> axes centered automatically.
> As my code is now, I have to use a trial-and-error visual inspection
> method,
> and manually input the location of the rotated axes to match the main
> plot
> axes' center at standard position.
> Ref: See {.1,.7} in
> ...Inset[Rotate[Graphics[axes],36.8699Degree],{.1,.7}]]
> (In another example using another equation that I ploted, the alignment
> values were different yet. So for some reason, these numbers don't seem
> to
> be constants from one plot to another.)
>
> I have tried AxesOrigin->{0,0} in the plots, but this doesn't seem to
> matter. Any help will be appreciated.
>
>
> Tia,
>
> Bill
>
>
--
DrMajorBob at yahoo.com
Prev by Date:
**Re: Root finding needs higher accuracy**
Next by Date:
**Re: Aligning 2 Sets of Axes at {0,0}; Rotated & Standard Position**
Previous by thread:
**Re: Aligning 2 Sets of Axes at {0,0}; Rotated & Standard Position**
Next by thread:
**Re: Aligning 2 Sets of Axes at {0,0}; Rotated & Standard Position**
| |