(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
DevExpress / ASP.NET Subscription
IBM Domino Enterprise Server Processor Value Unit (PVU) Annual SW Subscription & Support Renewal
AutoCAD LT 2022 Commercial New Single-user ELD Annual Subscription
EMS SQL Management Studio for PostgreSQL (Business) + 1 Year Maintenance
Kaspersky Endpoint Security для бизнеса – Стандартный Russian Edition. 10-14 Node 1 year Base License
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
Программирование в AutoCAD
Компьютерный дизайн - Все графические редакторы
Краткие описания программ и ссылки на них
3D и виртуальная реальность. Все о Macromedia Flash MX.
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100