Mne nejak unika, jak se ti to muze zacyklovat? To, ze se to zacykluje mne, je vec jina, ja to nemam dotazene. A navic to pocitam na pixelove care obvodu :) Pocitam ne uplne dobre. Coz jde videt prave u tech mensich n-uhelniku jako 3, 4, 5...Normalne spocitas priblizeni zleva, zprava a vystupem je nejpresnejsi. V okamziku, kdy se ti leva, prava nezmeni, tak cyklus ukoncis.
smin = Minimalni strana = obvod kruhu kratsi strany (a nebo b) / n
smax = Maximalni strana = obvod elipsy / n
Pak spocitas rozdil tech dvou a podelis dvema. Cili, postupne navysujes levou stranu o d, d/2, d/4
d = round((smax - smin) / 2)
right = smax
new = left + d
Kdyz se polygon s new vejde do elipsy, tak si left = new, a zkusis pridat opet d, new = left + d.
Kdyz se polygon s new nevejde do elipsy, a je-li new<right, pak right=new a d = d / 2.
A to opakujes, dokud je d>0 px. Takze se to nemuze preci zacyklit.
Vystupem je left a right a z tech vyberes to, co se do elipsy veslo nejlepe.
Je uplne jedno, jakym zpusobem vejiti do elipsy pocitas.
Samozrejme, uplne nejlepsi by bylo pocitat uhly a nebo prunik kruznice s elipsou o polomeru left.
---
Nebo se da smin urcit tez jako vepsany kosodelnik, pokud je n>=4
smin = 4 * odm(aa + bb)
A tim, ze pouzivas deleni intervalu, tak se vicemene dostanes k pruseciku do 7-14 kroku. Coz je porad lepsi nez me pixelove reseni, left +1 +1 +1
1000 500 250 125 63 32 16