Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как сделать плавный градиент (http://www.flasher.ru/forum/showthread.php?t=182010)

Isfet 09.07.2012 14:43

Как сделать плавный градиент
 
есть вот такой код.

Код AS3:

var type:String = GradientType.LINEAR; 
var colors:Array = [0xece3d4,0xd1be9e];
var alphas:Array = [1,1];
var ratios:Array = [0, 255];
var spreadMethod:String = SpreadMethod.PAD;
var interp:String = InterpolationMethod.LINEAR_RGB;
var focalPtRatio:Number = 0;
 
var matrix:Matrix = new Matrix();
var boxWidth:Number = 20;
var boxHeight:Number = 20;
var boxRotation:Number = Math.PI/6.5;
var tx:Number = 130;
var ty:Number = 160;
 
matrix.createGradientBox(boxWidth, boxHeight, boxRotation, tx, ty);
graphics.lineStyle(0,0xd4c3a5,1,true,"normal",null,JointStyle.MITER);
graphics.beginGradientFill(type, colors, alphas, ratios,matrix, spreadMethod, interp,focalPtRatio);
graphics.drawRect(100,100,75,120);
graphics.endFill();

как видно градиент резко переходит из одного цвета в другой, можно ли как-нибудь сделать чтобы он переходил ооооочень плавно, заранее спасибо.

Wolsh 09.07.2012 15:11

Зачем размер бокса 20х20? Сделайте 120х120 ))

Isfet 09.07.2012 17:46

я так понял ширина и высота этого бокса это и есть ширина и высота участка где будут "смешиваться " два цвета?

Wolsh 09.07.2012 20:18

Да, верно. Типа рамки масштабирования.
Которую можно растягивать, поворачивать и смещать.
От параметров собственно рисуемой фигуры вид градиента не зависит.
Его "географические" параметры задаются этим боксом.

Isfet 10.07.2012 06:26

а вот допустим фигуры у меня бывают различного размера, как по размеру фигуры вычислить ширину и высоту градиент бокса, и центрировать его относительно фигуры?

Wolsh 10.07.2012 11:46

Хелп по Matrix#createGradientBox()
Ну тут уж школьный курс геометрии и тригонометрии. По сути надо определиться с точками, "откуда и докуда" тянуть градиент, вычислить расстояние между ними — ширину бокса (например Point.distance()) и угол "гипотенузы", то есть поворот бокса. А вот насчет смещений надо поэкспериментировать, не знаю, что берется за центр координат бокса при рисовании сложной ломаной фигуры.


Часовой пояс GMT +4, время: 20:43.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.