Try replacing the last line with:

'aspect 1' plot circle,ellipse,:hyperbola

Linda

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Bo Jacoby
Sent: Tuesday, September 17, 2013 12:00 PM
To: [email protected]
Subject: Re: [Jprogramming] Plotting complex lists

One benefit of using complex numbers is that you may forget about
trigonometry. 

   load'plot'
   circle=._1^n=.(%~i:)60
   ellipse=.(circle*-.a)+(+circle)*a=.0.8
   hyperbola=.-:((+%)j.(-%))^n
   plot circle,ellipse,:hyperbola
   





>________________________________
> Fra: km <[email protected]>
>Til: "[email protected]" <[email protected]>
>Sendt: 0:40 tirsdag den 17. september 2013
>Emne: Re: [Jprogramming] Plotting complex lists
> 
>
>Summary of results.  The strategy of hyperbola below (plotting a complex
table) is not well known.  Henry Rich found it and reported it.
>
>Bo Jacoby gave the best way to change the sign of the real part of a
complex number.
>Simply do [: + -   .
>
>
>
>NB. Complex Analytic Geometry
>
>
>NB. How to calculate complex number lists and tables for NB. plotting 
>lines, circles, ellipses, and hyperbolas.  How to NB. modify these 
>tables to achieve translations, rotations, NB. and reflections.  Begin 
>with preliminaries:
>
>
>steps =: {.@] + -~/@] * [ %~ [: i. >:@[
>
>NB.  n steps a,b produces n+1 equally spaced values from a to b
>
>to =: 512 steps ,  NB. Usage a to b for 512 steps from a to b
>
>sin =: 1&o.
>
>cos =: 2&o.
>
>sinh =: 5&o.
>
>cosh =: 6&o.
>
>arcsinh =: _5&o.
>
>
>NB. Now, results
>
>
>line =: 2 : 'm + (n-m)*]'
>
>NB. A line B [ t is point "t of the way from A to B".  Command NB.
>NB.    plot 0 line 1j1 [ _1 to 2
>NB.
>NB. shows the line segment from _1j_1 to 2j2
>
>NB. You are plotting a list of 513 complex numbers.
>
>
>parabola =: 1 : '] j. (1 % 4 * m) * *:'
>
>NB. p parabola x produces point x j. y on parabola NB. (*: x) = 4*p*y .  
>Command NB.
>NB.    plot 1r4 parabola _2 to 2
>NB.
>NB. plots parabola y = *: x for x from _2 to 2
>
>NB. You are plotting a list of 513 complex numbers.
>
>
>ellipse =: 2 : '((m * cos) j. n * sin) 0 to 2p1'
>
>NB. Suggested by Henry Rich
>
>NB. Command
>NB.
>NB.    plot a ellipse b
>NB.
>NB. plots the ellipse 1 = (*: x % a) + *: y % b .
>
>NB. If a = b you get the circle (*: x) + (*: y) = *: a
>
>
>hyperbola =: 2 : '[: (,: +) (n * sinh) j. m * cosh'
>
>NB. Suggested by Henry Rich
>
>toh =: [: to/ [: arcsinh %~
>
>NB. b toh c,d is (arcsinh c%b) to (arcsinh d%b)
>
>NB. Command
>NB.
>NB.    plot a hyperbola b [ b toh c,d
>NB.
>NB. plots  y^2/a^2 - x^2/b^2 = 1  for x from c to d.
>
>NB. Remember the pattern b [ b toh c,d
>
>NB. You are plotting rows of a 2 by 513 table to get the two NB. 
>branches of the hyperbola.
>
>
>NB. Rotations, translations, and reflections
>
>NB. Multiply a complex number list or table by (^&j. theta) NB. to 
>rotate all of its points by theta radians.  The center NB. of rotation 
>is the origin 0 = 0j0 .
>
>NB. Add 5j3 to a complex list or table to move all of its points NB. 
>the distance and direction of 5j3 from 0j0.
>
>NB. Use (+ list) or (+ table) (monadic + is conjugate) to NB. reflect 
>all the points of the list or table across the NB. line through 0j0 and 
>1j0 -- the x-axis.  Afterwards NB. multiply by (^&j. theta) to achieve 
>a reflection across NB. the line through 0j0 and (^&j. theta).
>
>NB. Multiply a positive number p times a list or table to NB. achieve 
>an expansion from 0 or compression toward 0 NB. according as  p > 1  or  
>p < 1  .
>
>NB. If you want to combine several operations do the NB. reflection 
>first and the translation last.
>
>NB. Example
>NB.
>NB.    plot (^&j. theta) * p parabola _2 to 3 NB.
>NB. plots a parabola rotated by theta radians, with 0j0 NB. the center 
>of rotation.  If theta is _1r2p1 (that is NB. - pi%2 radians) you have 
>converted a  (*: x) = 4 * p * y NB. parabola into a  (*: y) = 4 * p * x  
>parabola.
>
>
>--Kip Murray
>
>Sent from my iPad
>
>----------------------------------------------------------------------
>For information about J forums see http://www.jsoftware.com/forums.htm
>
>
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to