Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 09.05.2006, 12:19
Dennix вне форума Посмотреть профиль Отправить личное сообщение для Dennix Найти все сообщения от Dennix
  № 11  
Ответить с цитированием
Dennix

Регистрация: Dec 2005
Сообщений: 34
Народ, помогите! Сэр Dracula_DIS подсказал словесный алгоритм, спасибо ему за это большое.
Но реализовать все равно не могу - рисую программно квадратик (допустим) и заливаю его (lineTo, beginFill). Дальше после того как он закрасился, надо нажать кнопку и указать на точки какие надо скруглить. Скруглять надо только прямые углы и только на определенный радиус.

Достаточно переделать указанную точку в контрольную в кривых Безье методом curveTo. В какую сторону скруглять надо определять может HitTest`ом?? Типа определдить куда идут отрезки, создающие угол.

Но как дальше преобразовать вершину в контрольную точку и перерисовать этот угол или всю фигуру??? Не понимаю... Она ведь уже нарисована. Помогите, чем можете...

Старый 10.05.2006, 00:04
bbexp вне форума Посмотреть профиль Отправить личное сообщение для bbexp Посетить домашнюю страницу bbexp Найти все сообщения от bbexp
  № 12  
Ответить с цитированием
bbexp
 
Аватар для bbexp

Регистрация: 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.
Старый 10.05.2006, 02:18
Dracula_DIS вне форума Посмотреть профиль Отправить личное сообщение для Dracula_DIS Найти все сообщения от Dracula_DIS
  № 13  
Ответить с цитированием
Dracula_DIS

Регистрация: Jun 2004
Адрес: DIS
Сообщений: 53
зачем сохранять еще середины если их по идее можно высчитать в любой момент??
__________________
Жизнь одна - тел много, истина одна - заблуждений много, знание одно - ересей много. Какой мудрец разберется во всех противоречиях?

Старый 10.05.2006, 13:27
bbexp вне форума Посмотреть профиль Отправить личное сообщение для bbexp Посетить домашнюю страницу bbexp Найти все сообщения от bbexp
  № 14  
Ответить с цитированием
bbexp
 
Аватар для bbexp

Регистрация: May 2006
Адрес: Город О
Сообщений: 169
в общем то да )))

Так нагляднее.
Никто не мешает потом удалить служебный массив.
__________________
Работа * Работы * О работе

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:43.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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