Blbe je, ze, kdybys chtel pouzit tu fintu s procenty z uhlu, tak si to musis prepocitat z kruznice na elipsu :) Coz je omoc slozitejzi nez kresleni elipsy.
function computePrusecik(c, a, b, uhel) // c{x:num,y:num}
{
// y = tan(uhel) * x ... usecka z uhlu
// (x-c.x)(x-c.x)/(a*a) + (y-c.y)(y-c.y)/(b*b) = 1 ... stredova rovnice elipsy
// - z elipsy si musis vyjadrit x= nebo y=
// - dosadit x (nebo y) z rovnice usecky
// - vypocitat diskriminant, urcit y1, y2 a x1, x2
// - rozhodnout se podle uhlu, ktere vysledek pouzit
}
To se mi ted jako vubec nechce prepisovat :) Ale, ten posun by sel mozna resit pomoci kosinu uhlu.
Dalsi moznost je ten uhel upravovat primo pro rovnice elipsy. Ale, tam asi bude treba vychazet z predchoziho bodu.
// k = 0..n
// d = 2 * Math.PI / n
Math.round(c.x + a * Math.cos(d*k)),
Math.round(c.y + b * Math.sin(d*k))
Ale problem je, ze tady se ten uhel natahuje elipticky. Kdyz je elipsa na lezata, ze zacatku je maly a pak dramaticky velky. U toho procentualniho reseni je to naopak, ale nejsou ty skoky tak dramaticke.
Ja jen, jestli stale shanis nejake fake reseni a nechce se ti to pocitat postupnym natahovanim kruznice :)