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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Обсуждение > Flash-арт

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

Регистрация: Dec 2002
Адрес: Москва
Сообщений: 35
Отправить сообщение для ксойд3 с помощью ICQ
Flame 3D-моделирование во Flash II

Создаёте новый movie с разрешением 550х550. В actions первого кадра пишете:

// НАСТРОЙКА
speed=0; // скорость вращения
gr=125; // начальный угол поворота (ось x)
gry=125; // начальный угол поворота (ось y)
grz=125; // начальный угол поворота (ось z)
osi=0; // прорисовывать оси (0-нет, 1-да)
xC = Stage.width/2; // координата точки начала отсчёта (x)
yC = Stage.height/2; // координата точки начала отсчёта (y)

// ПРОРИСОВКА
function drawAll() {
clear();
linestyle(2);

// МОДЕЛЬ <НАЧАЛО>
move3d(115,41,-25);
curve3d(115,55,-25,115,83,-25);
curve3d(83,83,-25,66,118,-25);
curve3d(83,118,-25,100,118,-25);
curve3d(100,135,-25,100,161,-25);
curve3d(69,161,-25,49,161,-25);
curve3d(18,249,-25,-48,242,-25);
curve3d(-48,226,-25,-48,200,-25);
curve3d(-9,203,-25,11,135,-25);
curve3d(41,36,-25,115,41,-25);
move3d(115,41,25);
curve3d(115,55,25,115,83,25);
curve3d(83,83,25,66,118,25);
curve3d(83,118,25,100,118,25);
curve3d(100,135,25,100,161,25);
curve3d(69,161,25,49,161,25);
curve3d(18,249,25,-48,242,25);
curve3d(-48,226,25,-48,200,25);
curve3d(-9,203,25,11,135,25);
curve3d(41,36,25,115,41,25);
move3d(115,41,-25);
line3d(115,41,25);
move3d(115,83,-25);
line3d(115,83,25);
move3d(66,118,-25);
line3d(66,118,25);
move3d(100,118,-25);
line3d(100,118,25);
move3d(100,161,-25);
line3d(100,161,25);
move3d(49,161,-25);
line3d(49,161,25);
move3d(-48,242,-25);
line3d(-48,242,25);
move3d(-48,200,-25);
line3d(-48,200,25);
// МОДЕЛЬ <КОНЕЦ>

gr+=speed;
gry+=speed;
grz+=speed;
if(osi==1) {
noteF = new TextFormat();
noteF.color = 0x000000;
noteF.bullet = false;
noteF.underline = true;
linestyle(0,0x999999,50);
move3d(0, 0, 0);
line3d(0, 200, 0);
line3d(7, 180, 0);
move3d(0, 200, 0);
line3d(0, 180, 7);
move3d(0, 0, 0);
line3d(0, 0, 200);
line3d(-7, 0, 180);
move3d(0, 0, 200);
line3d(7, 0, 180);
move3d(0, 0, 0);
line3d(200, 0, 0);
line3d(180, 0, -7);
move3d(200, 0, 0);
line3d(180, 0, 7);
_root.createTextField("z", 3, coord3dx(0,0,210), coord3dy(0,0,210), 100, 100);
z.border = false;
z.text = "ось z";
z.setTextFormat(noteF);
_root.createTextField("x", 4, coord3dx(210,0,0), coord3dy(210,0,0), 100, 100);
x.border = false;
x.text = "ось x";
x.setTextFormat(noteF);
_root.createTextField("y", 2, coord3dx(0,210,0), coord3dy(0,210,0), 100, 100);
y.border = false;
y.text = "ось y";
y.setTextFormat(noteF);
}
}
setInterval(drawAll,1);

// ФУНКЦИИ
function move3d(x, y, z) {
moveTo(xC-math.cos(Math.PI/180*gr)*x+math.sin(Math.PI/180*grz)*z, math.sin(Math.PI/180*gr)*x+yC+math.sin(Math.PI/180*gry)*y+math.cos(Math.PI/180*grz)*z);
}
function line3d(x, y, z) {
lineTo(xC-math.cos(Math.PI/180*gr)*x+math.sin(Math.PI/180*grz)*z, math.sin(Math.PI/180*gr)*x+yC+math.sin(Math.PI/180*gry)*y+math.cos(Math.PI/180*grz)*z);
}
function coord3dx(x, y, z) {
return xC-math.cos(Math.PI/180*gr)*x+math.sin(Math.PI/180*grz)*z;
}
function coord3dy(x, y, z) {
return math.sin(Math.PI/180*gr)*x+yC+math.sin(Math.PI/180*gry)*y+math.cos(Math.PI/180*gr)*z;
}
function curve3d(x,y,z,ax,ay,az) {
curveTo(xC-math.cos(Math.PI/180*gr)*x+math.sin(Math.PI/180*grz)*z, math.sin(Math.PI/180*gr)*x+yC+math.sin(Math.PI/180*gry)*y+math.cos(Math.PI/180*grz)*z,xC-math.cos(Math.PI/180*gr)*ax+math.sin(Math.PI/180*grz)*az, math.sin(Math.PI/180*gr)*ax+yC+math.sin(Math.PI/180*gry)*ay+math.cos(Math.PI/180*grz)*az);
}


// Copyrights
function drawCopy() {
_root.createTextField("copy",1,15,520,370,370);
copy.multiline = true;
copy.wordWrap = true;
copy.border = false;
copy.html = true;
copyF = new TextFormat();
copyF.color = 0x000000;
copyF.bullet = false;
copyF.underline = false;
copyF.font = "Arial";
copyF.bold = true;
copy.htmlText = "дубль два (c) <a href=\"http://www.qbstudio.ru/\" target=\"\">qb.studio</a> 2002";
copy.setTextFormat(copyF);
}
setInterval(drawCopy,1);


// created by qb.studio
// со всеми вопросами обращайтесь на xo@id.ru

Вот собственно и всё =).

Описание функций:

move3d(координата по x,координата по y,координата по z) - Аналог команды moveTo, только работает относительно 3d-осей. Использование: move3d(100,50,20);

line3d(координата по x,координата по y,координата по z) - Аналог команды lineTo, только работает относительно 3d-осей. Использование: line3d(100,50,20);

curve3d(координата контрольной точки по x,координата контрольной точки по y,координата контрольной точки по z,координата якоря по x,координата якоря по y,координата якоря по z) - Аналог команды curveTo, только работает относительно 3d-осей. Использование: curve3d(100,50,20,20,100,60);

coord3dx(координата по x,координата по y,координата по z) и coord3dy(координата по x,координата по y,координата по z) - Преображает 3D-координаты в 2D. Использование: _root.createTextField("text", 1, coord3dx(0,210,0), coord3dy(0,210,0), 100, 100);

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

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

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


 


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


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