PDA

Просмотр полной версии : Круг не круглый


McReal
11.01.2011, 16:10
День добрый всем.
Дано: правильный круг (создан инструментом, длина и высота совпадают). При вращении вокруг центра видно, что его немного подколбашивает, как будто круг не правильный (правильный бы не колбасило, это очевидно). Вопрос правильности окружности принципиальный, симулировать невращением правильность круга не вариант.

Кто-нибудь как-нибудь выходил из такой ситуации?

mooncar
11.01.2011, 16:33
При вращении вокруг центра видно, что его немного подколбашивает, как будто круг не правильный
Покажите.
Вероятнее всего дело не в "некруглости", а в анимации сглаживаемых границ векторного изображения. Т.е. "ступенька" дрожит.
На ЭЛТ-мониторах менее заметно.
правильный бы не колбасило, это очевидно
Вовсе не очевидно. Каждый кадр происходит именно вращение символа, т.е. плеер "не знает", что это круг, и перерисовывает его действительно повернутым. И при этом может не поспевать сглаживать кривую границы даже при отображении "идеального" круга.

iNils
11.01.2011, 16:44
Для идеального круга нужны кривые Безье третьего порядка, а флеш использует второго порядка, поэтому круг получается "не круглым".
Поэтому крутить круг не надо. Сделайте круглую маску и крутите содержимое под ней.

McReal
11.01.2011, 16:53
Покажите.
Вероятнее всего дело не в "некруглости", а в анимации сглаживаемых границ векторного изображения. Т.е. "ступенька" дрожит.

Вот, при вращении видно, что круг неправильный: http://www.ljplus.ru/img4/m/c/mcreal/test_circle.swf

mooncar
11.01.2011, 17:08
Да, тогда, видимо, надо принять во внимание объяснение и рекомендации iNils'a.
Дело не в сглаживании границ.
Хотя у меня (http://21rest.ru/test/circ.swf) не столь явная деформация получилась.
Делайте неподвижную маску и вращайте под ней.

McReal
11.01.2011, 18:08
Для идеального круга нужны кривые Безье третьего порядка, а флеш использует второго порядка, поэтому круг получается "не круглым".
Поэтому крутить круг не надо. Сделайте круглую маску и крутите содержимое под ней.

Спасибо, причина проблемы ясна. Маска приходила в голову, но думал: мало-ли, вдруг есть что проще. Так или иначе маска помогает, да.

rainbowrussia
11.01.2011, 19:07
Можно попробовать нарисовать окружность отрезками через sin и cos, так как на сколько я понял, идеальная окружность не строится кривыми Безье.