(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Уроки Flash: Рисуем деревья средствами ActionScript 2.0

Данный урок, посвящен рисованию деревьев. Вся прелесть урока заключается в том, что рисовать мы будем деревья словами в панели ActionScript.
Чтобы наше дерево получилось правдоподобным нам следует представить его строение. Ключевые составляющие любого дерева - ствол и ветки. Ветка, как мы знаем - не бесконечна (также, как и ствол) она растет до определенной длины, после чего сама развивается на несколько веток. Толщина родительской ветки связана с толщиной веток, растущих из нее. А общая толщина ствола примерно равна толщине всех ветвей растущих из него. Мы знаем и о подобии между веткой и деревом - посадим в землю веточку - вырастет дерево.
Учитывая все вышесказанное, приступим к написанию "генератора деревьев".

CODE
//Создаем счетчик максимального количества ростков. Оно у нас ограничено - 3000 //тысячи.
function counter():Number {
if (branchCounter == undefined) { // Если переменная branchCounter не имеет значения, //задем ранвой нулю
branchCounter =0;
}
return (branchCounter++); // Или же функция производит пост-инкремент
}

//Функция, которая выращивает наши веточки
        function grow() {
this.lineStyle(trunkThickness, 0x000000, 100); //рисуем линию
this.moveTo(0, 0);// Устанавливаем начальные кординаты
this.lineTo(0, trunkLength);
// Если это не ствол, изменить угол и размер ветви
if (this._name != "trunk") {
this._rotation = (Math.random()*angle) - angle/2;
this._xscale *=branchSize;
this._yscale *= branchSize;
}
// Сгенерировать ростки...
var seed = Math.ceil(Math.random()*branch);
for (var i = 0; i < seed; i++) {
if (counter()< 3000) {
var segment = this.createEmptyMovieClip("segment" + i, i)
segment.onEnterFrame = grow;
segment._y += trunkLength; }
}
delete (this.onEnterFrame);
  }
// Определить позицию ствола и назначить обработчиком
// события onEnterFrame функцию growO
this.createEmptyMovieClip("trunk", 0);
trunk._x = 200;
trunk._y = 400;
trunk.onEnterFrame = grow;
// Параметры дерева
var angle = 100;
var branch = 5;
var trunkThickness = 8;
var trunkLength = -100;
var branchSize =0.7;

Базовая форма дерева определяется параметрами, значения которых задаются
в завершающих строках листинга:
• angle - максимальный угол ветви по отношению к родителю;
• branch - максимальное количество ростков (дочерних ветвей) для любой
ветви;
• trunkThickness - толщина ствола дерева;
• trunkLength - длина ствола дерева;
• branchSize - отношение размеров дочерней и родительской ветвей (ветви
уменьшаются по мере удаления от ствола).
Сначала мы создаем ствол и задаем его позицию, после чего назначаем функцию
grow() обработчиком события onEnterFrame. Как подсказывает само название,
функция grow() "выращивает" пустое дерево в нашем клипе, для чего она
выполняет две операции. Сначала функция создает исходную ветвь, рисуя
вертикальную линию высотой trunkLength и толщиной trunkThickness. Если в на-
стоящее время рисуется ствол, он оставляется в первоначальном виде
Если же рисуется ветвь, она поворачивается на угол +/- angle) и мас-
штабируется с коэффициентом branchSize .

Вот так средствами AS 2.0 мы изобразили вполне правдоподобное деревце.



 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 10.07.2008 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
SAP CRYSTAL Reports 2013 WIN INTL NUL
Stimulsoft Reports.Ultimate Single License Includes one year subscription
Купить Антивирус Dr.Web Server Security Suite для сервера
Bitdefender Antivirus Plus 2020/1 год/1 ПК
EMS Data Comparer for Oracle (Business) + 1 Year Maintenance
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Программирование в AutoCAD
Компьютерный дизайн - Все графические редакторы
Один день системного администратора
Краткие описания программ и ссылки на них
3D и виртуальная реальность. Все о Macromedia Flash MX.
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100