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 (x
0,y
0) 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.