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

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

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

Регистрация: May 2003
Сообщений: 144
По умолчанию рисование кривой по расставленным точкам

народ, помогите с одной интересной проблемой.
для начала нужно расставить точки (вручную) на определенной области.
задача: провести плавную кривую, так, что бы точки стали экстремальными.

получается только вот так:
http://www.mechitov.com/robi/graph.swf

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

вот код, который рисует линию:

this.onEnterFrame = function() {
mc.lineStyle(1, 0x5BA050, 100);
mc.moveTo(this.c0_mc._x, this.c0_mc._y);
var arr = this._parent.path_array=[];
arr.push((this.c0_mc._x+this.c1_mc._x)/2);
arr.push((this.c0_mc._y+this.c1_mc._y)/2);
for (var i = 1; i<(punto-2); i += 1) {
var mc1 = this["c"+i+"_mc"], mc2 = this["c"+(i+1)+"_mc"];
var pt_x = (mc2._x+mc1._x)/2, pt_y = (mc2._y+mc1._y)/2;
mc.curveTo(mc1._x, mc1._y, pt_x, pt_y);
arr.push(mc1._x), arr.push(mc1._y), arr.push(pt_x), arr.push(pt_y);
}
mc.lineTo(mc2._x, mc2._y);
};

где: mc - материнский клип, с_[n]_mc - клипы точек, punto - кол. точек.

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

Старый 13.08.2006, 19:54
Sneg вне форума Посмотреть профиль Отправить личное сообщение для Sneg Найти все сообщения от Sneg
  № 2  
Ответить с цитированием
Sneg
 
Аватар для Sneg

Регистрация: Oct 2005
Адрес: Russia, Moscow
Сообщений: 316
Отправить сообщение для Sneg с помощью ICQ
Рисовать нужно кубическими или квадратичными кривыми Безье. Классы которые помогут решить данную проблему видел например на сайте Silin'a:
http://www.silin.fatal.ru/AS2/index.html

Старый 13.08.2006, 21:09
catilina вне форума Посмотреть профиль Отправить личное сообщение для catilina Найти все сообщения от catilina
  № 3  
Ответить с цитированием
catilina

Регистрация: May 2003
Сообщений: 144
спасибо снег, на первый взгляд силин то, что нужно.

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

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

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


 


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


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