Kip,   

-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of km
Sent: Saturday, September 21, 2013 5:08 AM
To: [email protected]
Subject: Re: [Jprogramming] Plotting complex lists

Try

   'aspect 0.5' plot ((,-)2j1) ,: _1^(%~i:)60

and

   'aspect 1' plot _1^(%~i:)60

--Kip Murray

Sent from my iPad

> On Sep 21, 2013, at 3:15 AM, Bo Jacoby <[email protected]> wrote:
> 
>    'aspect 1' plot ((,-)2j1) ,: _1^(%~i:)60 NB. This makes the frame of the 
> plot square, but it has different units on the two axes, so the circle is 
> deformed. How do I make the circle circular?
>    plot ((,-)2j1),:_1^(%~i:)60 NB. This is different, but not correct either.
> 
> 
>> ________________________________
>> Fra: Linda Alvord <[email protected]>
>> Til: [email protected]
>> Sendt: 3:39 lørdag den 21. september 2013
>> Emne: Re: [Jprogramming] Plotting complex lists
>> 
>> 
>> 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
> ----------------------------------------------------------------------
> 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