PDA

Просмотр полной версии : curveTo: глючит толщина


heilong
17.05.2006, 14:02
Рисую параболу с помощью curveTo. Ставлю определённую толщину с помощью lineStyle, но в зависимости от конкретной кривой толщина сильно отличается от очень тонкой до очень толстой. Посмотреть можно тут
http://heilong.oceanography.ru/flash/misc/grapher.swf
Надо нажать мышкой в любом месте и, держа кнопку нажатой, водить мышкой, кривая будет меняться, хорошо заметно насколько сильно меняется толщина...
Исходники тут http://heilong.oceanography.ru/flash/misc/grapher.rar

Это глюк? Как с этим бороться?

NeZnayKa
17.05.2006, 14:15
попробуй толщину сделать 0...

heilong
17.05.2006, 14:39
Не помогает. Жирной она теперь не бывает, но в зависимости от формы может быть нормальной (т.е. hairline) или совсем тонкой еле видной (точно тоньше hairline lineTo).

etc
17.05.2006, 15:10
А ты заново рисуешь её или меняешь ширину мувика с ней?

heilong
17.05.2006, 15:56
Каждый раз рисую заново.
clear
lineStyle
curveTo

etc
17.05.2006, 15:58
Скорее всего проблема как раз в использовании curveTo, а не lineTo.
Попробуй рисовать через lineTo.

iNils
17.05.2006, 16:38
А трейсить не пробывал?

heilong
17.05.2006, 17:12
трейсить что?
сделаю через lineTo как самый последний вариант

etc
17.05.2006, 17:15
Почему как самый последний? Чем не устраивает?

iNils
17.05.2006, 17:33
трейсить что?
сделаю через lineTo как самый последний вариант
толщину, у тебя она динамически задается
lineStyle(dx * thickness / 11, color);

heilong
17.05.2006, 18:11
_etc: криво по своей натуре, раз уж есть во флэше кривые, неплохо бы ими и пользоваться. это, конечно, вариант рабочий, но хочется разобраться сначала в чём проблема.

inils: sorry, это кусок кода старого не удалил, оно ни на что не влияет - влияют вызовы mc.lineStyle, там постоянная толщина.

iNils
17.05.2006, 18:35
Тогда не понимаю что не нравится? Что толщина равномерна по все линии, а в месте наибольшего перегиба нет? Или что? Можешь принтскрин показать?

heilong
17.05.2006, 18:49
http://heilong.oceanography.ru/flash/misc/curveto_bug.jpg
Это всё можно нарисовать в свф-ке (клик+драг мышкой)
http://heilong.oceanography.ru/flash/misc/grapher.swf
lineStyle везде один однозначно. Толщина изменяется даже когда просто драгаешь любую параболу (клик на параболе + драг)
В некоторых местах кривой вообще почти не видно, а кое-где жирнющая. И совсем кое-где неравномерная

Madasan
17.05.2006, 19:43
Это особенность реализации сurveTo()! Оно рисуется все равно прямыми линиями, и при "крутых" координатах глючит.

heilong
18.05.2006, 10:55
Понятно. Переделал, рисую теперь с помощью lineTo. Значится это не особенность, а глюк реализации curveTo, у меня на lineTo все получается же на "крутых" координатах.

Madasan
18.05.2006, 11:56
Ну значит сurveTo для твоих парабол не подходит, достатчно увеличить масштаб всего фильма, чтобы увидеть как оно глючит.

MyXus
18.05.2006, 14:22
Ооо. какой кошмар. курвТу сакс.

heilong
18.05.2006, 19:21
MyXus,
А что ты используешь, только линии?

__i
18.05.2006, 19:44
а можно повторить исходничек ? %)) просто хочеться посмотреть как ты добился такого эффекта, ну или часть кода где это все рисуеться....

heilong
21.05.2006, 03:56
Могу прислать почтой. Тебе какую версию, исправленную или на curveTo?