|
|
|||||
Градиентная заливка треугольника
Привет. Мне нужно получить такой треугольник:
Вот его координаты: g.lineStyle(1); g.moveTo(200, 100); g.lineTo(250, 150) g.lineTo(50, 250); g.lineTo(200, 100); Я знаю что нужную матрицу надо получить из matrix.createGradientBox(), но что передавать туда? Вообще этот метод ведет себя странно очень - по идее наклон градиента должен быть таким, каким я его задаю третьим параметром в этом методе, но, чёрт побери, он меняется в зависимости от ширины и высоты что я передаю в метод!!! Последний раз редактировалось iNils; 21.02.2011 в 13:19. |
|
|||||
точно, константой )
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
Регистрация: Apr 2010
Сообщений: 32
|
Как-то так:
var p1 : Point = new Point( 200, 100 ); var p2 : Point = new Point( 250, 150 ); var p3 : Point = new Point( 50, 250 ); var triangle : Shape = new Shape(); var g : Graphics = triangle.graphics; var gradient_colors : Array = new Array( 0x000000, 0xFFFFFF ); var gradient_alphas : Array = new Array( 1.0, 1.0 ); var gradient_ratios : Array = new Array( 0, 255 ); var gradient_matrix : Matrix = new Matrix(); var angle : Number = Math.atan2( p2.y - p1.y, p2.x - p1.x ); gradient_matrix.createGradientBox( p2.x - p1.x, p2.y - p1.y, angle, p1.x, p1.y ); g.beginGradientFill( GradientType.LINEAR, gradient_colors, gradient_alphas, gradient_ratios, gradient_matrix ); g.lineStyle( 1 ); g.moveTo( 200, 100 ); g.lineTo( 250, 150 ); triangle.graphics.lineTo( 50, 250 ); g.lineTo( 200, 100 ); g.endFill(); addChild( triangle ); Ах да, раз уж есть p1, p2 и p3, то в moveTo() и lineTo() лучше, конечно, их использовать. Последний раз редактировалось shootkin; 21.02.2011 в 14:32. |
|
|||||
Да, но текстура нужна в виде Bitmap. А мне нужна векторная заливка.
Еще интересный момент с createGradientBox: не то же самое, что Что там творится внутри этого метода? |
|
|||||
Регистрация: Apr 2010
Сообщений: 32
|
Хоть я и понимаю, что опоздал, но свои ошибки надо исправлять.
Да, ротацию и перемещение лучше не доверять методу createGradientBox. То есть в createGradientBox осталась только ширина градиента. |
Часовой пояс GMT +4, время: 10:38. |
|
« Предыдущая тема | Следующая тема » |
|
|