Square isn't so square either.  Linda  (Yet again, life is a series of
approximations.)

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Bo Jacoby
Sent: Wednesday, September 18, 2013 9:52 PM
To: [email protected]
Subject: Re: [Jprogramming] Plotting complex lists

Thanks Linda! The 'aspect 1' makes the plot square. Do you know how to make
circles circular?


>________________________________
> Fra: Linda Alvord <[email protected]>
>Til: [email protected]
>Sendt: 2:48 torsdag den 19. september 2013
>Emne: Re: [Jprogramming] Plotting complex lists
> 
>
>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
>
>
----------------------------------------------------------------------
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