display | more...
A rotation around the edge of a circle is often interesting in making computer games. An elliptic rotation may be of similar interest.

Let x2/a2+y2/b2=1 be an ellipse with given parameters a and b. Let (x0,y0) be a given point on the edge of this ellipse, and let t be a positive angle through which to rotate:

                                  (0,b)       (x0,y0)
           (xn,yn)    ,....onOK@@@@@@@@@@@HQme....,
               ,..szSZSZF'`         |         `'TUXUXux..,
            ,z4P'`,                           /        `'GAc,
         ,xw'`    `\,               |        /             `'wx,
       .u'`         `\,                     /                 `'n.
     ,dy`             `\,           |      /                    `qb,
    /7`                 `\,               /                       `A\
   4y                     `\,       |    /                          \D
  ,I'                       `\,         /                           `U,
  dp                          `\,   |  /                             qb
 ,j'                            `\,   /  <--angle t                  `t,
 AV                               `\|/                                VA
 69- - - - - - - - - - - - - - - - -.- - - - - - - - - - - - - - - - -96 (a,0)
 VA                                 |                                 AV
 `t,                                                                 ,j'
  qb                                |                                dp
  `I,                                                               ,U'
   \D                               |                              4y
    VA,                                                           /7`
     `qb,                           |                           ,dy`
       `'n.                                                   .u'`
         `'xw,                      |                      ,mx'`
            `'Gcc,                                     ,zzN'`
               ``'Tuxuxux.,         |         ,.szszszF'``
                      ````'TTOK@@@@@@@@@@@HQTT'````
Then,
xn=x0cos(t)-sqrt(a2-x02)sin(t)
and
yn=y0cos(t)+sqrt(b2-y02)sin(t).



I suspect that this rotation can be accomplished with a distance instead of an angle, but I am still working this out.

Log in or register to write something here or to contact authors.