(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
VMware Workstation 14 Player for Linux and Windows, ESD
VMware Workstation 14 Pro for Linux and Windows, ESD
TeeChart for .NET with source code single license
Microsoft Office для дома и учебы 2019 (лицензия ESD)
Купить WinRAR : 5 : Академическая лицензия 1 лицензия
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Программирование в AutoCAD
Компьютерный дизайн - Все графические редакторы
Программирование на Visual С++
3D и виртуальная реальность. Все о Macromedia Flash MX.
Краткие описания программ и ссылки на них
Проект mic-hard - все об XP - новости, статьи, советы
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100