![]() |
|
||||||||||
|
|||||
|
Регистрация: Dec 2005
Сообщений: 34
|
Народ, помогите! Сэр Dracula_DIS подсказал словесный алгоритм, спасибо ему за это большое.
Но реализовать все равно не могу - рисую программно квадратик (допустим) и заливаю его (lineTo, beginFill). Дальше после того как он закрасился, надо нажать кнопку и указать на точки какие надо скруглить. Скруглять надо только прямые углы и только на определенный радиус. Достаточно переделать указанную точку в контрольную в кривых Безье методом curveTo. В какую сторону скруглять надо определять может HitTest`ом?? Типа определдить куда идут отрезки, создающие угол. Но как дальше преобразовать вершину в контрольную точку и перерисовать этот угол или всю фигуру??? Не понимаю... Она ведь уже нарисована. Помогите, чем можете... ![]() |
|
|||||
|
Регистрация: May 2006
Адрес: Город О
Сообщений: 169
|
Dennix, onMouseUp помимо рисования, заноси в некий массив userArray координаты точки.
массив[0].x - это координата для moveTo массив[0].y - это координата y var userArray:Array = [];
var n:Number = 0;//это счетчик для массива;
var drawListener:Object = new Object();
drawListener.onMouseUp = function ():Void {
userArray[n] = {x: _xmouse, y: _ymouse};
n++;
}
Mouse.addListener(drawListener);
потом создаём новый массив curveArray, где сохраняем еще и промежуточные точки - середины, по принципу
var curveArray:Array = [];
for (var i=0; i<userArray.length*2;i+=2) {
curveArray[i] = {x: userArray[i].x, y:userArray[i].y};
curveArray[i+1] = {x: (userArray[i+1].x-curveArray[i].x)/2, y:(userArray[i+1].y - curveArray[i])/2};
}
но это уже на собственное обмозгование - думаю, несложно догадаться. Код не проверял, но думаю тут принцип понятен. Последний раз редактировалось bbexp; 10.05.2006 в 00:24. |
|
|||||
|
Регистрация: Jun 2004
Адрес: DIS
Сообщений: 53
|
зачем сохранять еще середины если их по идее можно высчитать в любой момент??
__________________
Жизнь одна - тел много, истина одна - заблуждений много, знание одно - ересей много. Какой мудрец разберется во всех противоречиях? |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:40. |
|
|
« Предыдущая тема | Следующая тема » |
|
|