Просмотр полной версии : Линия с переменной толщиной
Samuraix
06.03.2012, 01:39
Здравствуйте, форумчане.
Возник такой вопрос.
Когда рисую программно с помощью метода lineTo класса Graphics, линия получается, как на рисунке "а", мне же надо, чтобы линия к концу сужалась, как на рисунке "б". Много гуглил, но то ли я неправильно запрос составляю, то ли это невозможно. Хотелось бы узнать ваше драгоценное мнение и советы.
все возможные варианты встроенных стилей тут http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/flash/display/Graphics.html#lineStyle()
остальное только рисовать кривыми самому.
невозможно. если только каким то образом трансформ матриц заюзать, и то врядли.
Но есть хак, дичайший правда
drawRect(0,0,длинна линии до уменьшения, ширина линии);
for(var i:int = 0 ; i < длинна линии во время уменьшения ; i++) drawRect( w, i , i , scaleFactor )
думаю смысл поняли, формула правда кривая помоему, но сами думаю сможете понять. Тоесть нужно рисовать каждый раз с уменшением в 1 px .
Есть еще вариант рисовать треугольник после , что быстрее и понятнее ))
Samuraix
06.03.2012, 02:05
Понятно.. Спасибо большое!
Думаю, можно поиграть с CapsStyle + JointStyle и толщиной линии.
Можно попробовать имитировать кисточку: т.е. рисовать параллельно несколько линий, а ближе к концу некоторые из линий заканчивать раньше, т.о. получится впечатление, как будто линии "плавно" заканчиваются.
Ну или как в Фотошопе - выбрать форму, и создавать линии дублируя эту форму вдоль пути.
Есть более (http://www.flashandmath.com/advanced/smoothdraw/) продвинутые (http://workflowflash.com/2984/custom-brushes-with-actionscript.php) варианты (http://en.nicoptere.net/?p=476).
Вечно я на них ссылки теряю. На том же принципе, что в последней ссылке даже выпустили интересный редактор (http://www.livebrush.com/).
MikroAcse
08.03.2012, 00:13
В чем прикол?
Разве нельзя сделать вот так?:
graphics.moveTo(10,50)
for(var a:uint=1; a<=10;a++){
graphics.lineStyle(a,0xFF0000);
graphics.lineTo(a*10,50)
}
У меня работает на ура. :)
Никто и не говорил, что этот способ не работает. Он используется еще со времен AS2. Но на кривых он смотрится плохо.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.