We are trying to do the same thing- where you concentrate on a point- slope approach, I tend to a rotation of points -and there can be many- points on a shape or a curve. With this latest example I use the following.
rotheta=:([:r.[)*] pts=:_1j0 0j1 1j2 ctr=:_1j1 ] s=:ctr+ (1r4p1) rotheta pts-ctr _0.292893j0.292893 _0.292893j1.70711 _0.292893j3.12132 which are the the rotated positions of the original points -a vertical line at x=_0.292893 (_1+%:0.5) as you have . The distance between adjacent points is % :2 as in the ori ginal points . My earlier posted rotheta was m eant to give input and output in (x,y) form and didn't work for this example. I realize why you de alt with 3 points although t his wa sn't needed. As far as the verbs themselves are considered- as simple as possible is the target. Don ----- Original Message ----- From: "Kip Murray" <[email protected]> To: [email protected] Sent: Wednesday, March 9, 2016 8:26:09 PM Subject: Re: [Jprogramming] A plane rotation Verbs ff , gg , and (gg mab) below represent straight lines. If one of them is evaluated at a real number t the result is a point on the represented line. I calculated three points on each represented line as a kind of substitute for graphing the line, and to let you see how the y-coordinates (imaginary parts) were related to the x-coordinates (real parts). For me the "results" are the verbs themselves, not the points calculated from them! Here is another example hh =: _1j0 1j1 line NB. line with start _1j0 , direction 1j1 hh"0 [ 0 1 2 NB. three points on the line _1j0 0j1 1j2 jj =: hh rot 1r4p1 _1j1 NB. rotate line 1r4p1 radians about _1j1 jj"0 [ _1 0 1 NB. three points show result is vertical line x = _1 + %: 0.5 _0.2928932188j_1.121320344 _0.2928932188j0.2928932188 _0.2928932188j1.707106781 --Kip Murray On Wednesday, March 9, 2016, Don Kelly <[email protected]> wrote: > A question- you give you define the line and the center of rotation but > the results are 3 points on the line. shouldn't the results be shown in > terms of 2 points on the rotated line? While usually the line is expressed > as y=a+bx (a and b real) which is easy if the the rotation center is on > the line at x =0. > new end =. (r.theta) +end as start is not changed. > A bigger challenge is to have a rotation center that is not on the > original line and given points that do not fit the typical y=a+bx > Example: line ends at 2j3j5 and 3j4 to be rotated about 1j2 > this involves a rotation of two vectors (1j1 and3j4 ) as seen from 1j2 > about "0" and then a translation of 1j2 > > rotheta=:[: +. ([: r. [) * [: +.^:_1 ] > > 1j2+ (_1r4p1) rotheta 1j1 2j2 > > 2.41421j2 3.82843j2 which is the location of the > points after rotation > This can then be put into a y=a+bx form with a =2 and b=1.414.. > > > Don > > > On 2/20/2016 2:14 PM, Kip Murray wrote: > >> Here after a struggle are my linrot results. >> >> NB. rotate a line in the plane about a point in the plane >> >> NB. here points are complex numbers >> >> NB. below start and direction are complex numbers, could be vectors >> >> NB. (start,direction) line t is start + t * direction >> >> line =: 1 : '({. m) + ({: m) * ]' >> >> mab =: 1 : '( (u 0) , (% 9&o.) (u 1) - u 0 ) line' NB. point slope >> version of u >> >> NB. below u rot (theta,center) rotates results of u by theta radians >> about the center >> NB. it is assumed the results of u and the center are complex numbers >> >> rot =: 2 : '[: r.&({. n)&.(({: n) -~ ]) u' >> >> ff =: 0j1 1j1 line NB. line starts at 0j1 goes in direction of >> 1j1 >> >> ff"0 [ 0 1 2 NB. Notice y = x + 1 >> 0j1 1j2 2j3 >> >> gg =: ff rot _1r4p1 0j1 NB. rotates ff results 45 degees clockwise >> about 0j1 >> >> gg"0 [ 0 1 2 NB. horizontal (y's are all 1) >> 0j1 1.414213562j1 2.828427125j1 >> >> (gg mab)"0 [ 0 1 2. NB. results x j. y from point slope y = 1 + >> 0*(x - 0) >> 0j1 1j1 2j1 >> >> --Kip >> >> On Thursday, February 18, 2016, Louis de Forcrand <[email protected]> >> wrote: >> >> To continue with the rotation challenges, write a verb that rotates a >>> linear >>> polynomial (coeffs in x) by 0 {:: y with a centre of 1 {:: y: >>> >>> 1 2 linrot 1p1 ; 0 1 >>> 1 2 >>> 1 2 linrot 1r2p1 ; 0 1 >>> 1 _0.5 >>> 1 2 linrot 1p1;1 1 >>> _3 2 >>> >>> My take: >>> linrot=: ({: %. 1 ,. {.)@rotposmat >>> rotposmat=: centre + j./@posmat |:@:+.@:* r.@angle >>> centre=: 1&({::)@] >>> posmat=: (] ,: p.)&0 1@[ - centre >>> angle=: 0&({::)@] >>> >>> It uses matrix division on a rotated set of two points from the original >>> polynomial. Not very elegant, but I’m pretty sure it works. >>> >>> Best regards, >>> Louis >>> >>> On 17 Feb 2016, at 06:40, Kip Murray <[email protected] >>>> >>> <javascript:;>> wrote: >>> >>>> Not bad. I didn't know about r. . For clean I use >>>> >>>> clean =: (* *!.1e_14@|)"0&.+. >>>> >>>> --Kip >>>> >>>> On Tuesday, February 16, 2016, Raul Miller <[email protected] >>>> >>> <javascript:;> <mailto:[email protected] <javascript:;>>> wrote: >>> >>>> Well... >>>>> >>>>> rottheta=: (rot~ r.)~ >>>>> 1r2p1 rottheta 3 4 >>>>> _4 3 >>>>> 1r4p1 rottheta _1 1 >>>>> _1.41421 1.11022e_16 >>>>> >>>>> I remember there being a concise phrase to clean irrelevant bits near >>>>> zero in a complex number, but I can't remember what I need to search >>>>> on to find it, and my foggy memory of how to write it is failing me at >>>>> the moment. >>>>> >>>>> Still, this gets you close. >>>>> >>>>> -- >>>>> Raul >>>>> >>>>> >>>>> On Tue, Feb 16, 2016 at 11:50 PM, Kip Murray <[email protected] >>>>> >>>> <javascript:;> >>> >>>> <javascript:;>> wrote: >>>>> >>>>>> I'm retired with time to "fool around". Finding an old rot90 verb >>>>>> that >>>>>> used multiplication by a 2 by 2 matrix, I sought a more direct way >>>>>> >>>>> using >>> >>>> complex numbers and found one of the solutions that was posted. I also >>>>>> learned a lot from the other solutions posted, thanks everyone! >>>>>> >>>>>> New puzzle: find a complex analysis way to do a rotation given its >>>>>> >>>>> angle >>> >>>> in >>>>> >>>>>> radians, examples: >>>>>> >>>>>> 1r2p1 rottheta 3 4 >>>>>> _4 3 >>>>>> >>>>>> 1r4p1 rottheta _1 1 >>>>>> _1.414213562 0 >>>>>> >>>>>> --Kip >>>>>> >>>>>> I'm also a former math professor! >>>>>> >>>>>> On Tuesday, February 16, 2016, David Lambert <[email protected] >>>>>> >>>>> <javascript:;> >>> >>>> <javascript:;>> wrote: >>>>> >>>>>> what's your agenda, are you writing a book? Isn't there a homogeneous >>>>>>> coordinate system/transformation lab? >>>>>>> >>>>>>> On 02/16/2016 06:16 PM, [email protected] >>>>>>>> >>>>>>> <javascript:;> >>> >>>> <javascript:;> wrote: >>>>> >>>>>> Date: Tue, 16 Feb 2016 15:18:43 -0600 >>>>>>>>> From: Kip Murray<[email protected] <javascript:;> >>>>>>>>> >>>>>>>> <javascript:;>> >>> >>>> To:"[email protected] <javascript:;> <javascript:;>" < >>>>>>>>> >>>>>>>> [email protected] <javascript:;> <javascript:;>> >>>>> >>>>>> Subject: [Jprogramming] A plane rotation >>>>>>>>> Message-ID: >>>>>>>>> < >>>>>>>>> >>>>>>>> caofworgvydb1nmjwxkb0wosyfnlubxcdz20sv11uksfcfay...@mail.gmail.com >>>>> >>>> <javascript:;> >>> >>>> <javascript:;>> >>>>> >>>>>> Content-Type: text/plain; charset=UTF-8 >>>>>>>>> >>>>>>>>> Fairly easy: write a verb that rotates a point in the plane by the >>>>>>>>> >>>>>>>> angle >>>>> >>>>>> of >>>>>>>>> a given complex number. For example >>>>>>>>> >>>>>>>>> 1j1 rot 1 1 NB. Rotate 1 1 counterclockwise 45 degrees >>>>>>>>> 0 1.414213562 >>>>>>>>> >>>>>>>>> Background information: when you multiply two complex numbers the >>>>>>>>> magnitudes are multiplied and the angles are added. >>>>>>>>> >>>>>>>>> --Kip Murray >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>> ---------------------------------------------------------------------- >>>>>>> For information about J forums see >>>>>>> >>>>>> http://www.jsoftware.com/forums.htm >>> >>>> >>>>>> >>>>>> -- >>>>>> Sent from Gmail Mobile >>>>>> ---------------------------------------------------------------------- >>>>>> For information about J forums see >>>>>> http://www.jsoftware.com/forums.htm >>>>>> >>>>> ---------------------------------------------------------------------- >>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>>> >>>> >>>> >>>> -- >>>> Sent from Gmail Mobile >>>> ---------------------------------------------------------------------- >>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>> < >>>> >>> 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 -- Sent from Gmail Mobile ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
