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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Работа над сайтом > 3D

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

Регистрация: Nov 2003
Адрес: Третья планета от Солнца
Сообщений: 3
По умолчанию Тень в програмной анимации

Подскажите, как сюда добавить тень... или хотябы залить...
-------------------------------------------------------------------------------
x = [-135, -135, -135, -100, -6, -6, -135, -135, -135, -100, -6, -6, 8, 70, 98, 98, 98, 8, 8, 70, 98, 98, 98, 8, 131, 70, 38, 9, -86, 0, 131, 70, 38, 9, -86, 0];
y = [73, 0, -35, -54, -104, -3, 73, 0, -35, -54, -104, -3, -154, -117, -100, -72, 47, -4, -154, -117, -100, -72, 47, -4, 81, 116, 136, 118, 58, 8, 81, 116, 136, 118, 58, 8];
z = [20, 20, 20, 20, 20, 20, -20, -20, -20, -20, -20, -20, 20, 20, 20, 20, 20, 20, -20, -20, -20, -20, -20, -20, 20, 20, 20, 20, 20, 20, -20, -20, -20, -20, -20, -20];
var _x = 500, _y = 500, s = 151, pX = 0.5, pY = -2;
_root.onEnterFrame = function() {
//pX = -(0-_ymouse)/100;
//pY = (0-_xmouse)/100;
clear();
for (i=0; i<36; i++) {
r = Math.PI/180;
cosX = Math.cos(pX*r);
sinX = Math.sin(pX*r);
cosY = Math.cos(pY*r);
sinY = Math.sin(pY*r);
ky = y[i]*cosX-z[i]*sinX;
kx = x[i]*cosY+(y[i]*sinX+z[i]*cosX)*sinY;
kz = -x[i]*sinY+(y[i]*sinX+z[i]*cosX)*cosY;
x[i] = kx;
z[i] = kz;
y[i] = ky;
}
lineStyle(-1, 0x6699ff, 100);
//1.1
moveTo(x[0]*(s/(s+z[0])), y[0]*(s/(s+z[0])));
lineTo(x[1]*(s/(s+z[1])), y[1]*(s/(s+z[1])));
curveTo(x[2]*(s/(s+z[2])), y[2]*(s/(s+z[2])), x[3]*(s/(s+z[3])), y[3]*(s/(s+z[3])));
lineTo(x[4]*(s/(s+z[4])), y[4]*(s/(s+z[4])));
lineTo(x[5]*(s/(s+z[5])), y[5]*(s/(s+z[5])));
lineTo(x[0]*(s/(s+z[0])), y[0]*(s/(s+z[0])));
//1.2
moveTo(x[6]*(s/(s+z[6])), y[6]*(s/(s+z[6])));
lineTo(x[7]*(s/(s+z[7])), y[7]*(s/(s+z[7])));
curveTo(x[8]*(s/(s+z[8])), y[8]*(s/(s+z[8])), x[9]*(s/(s+z[9])), y[9]*(s/(s+z[9])));
lineTo(x[10]*(s/(s+z[10])), y[10]*(s/(s+z[10])));
lineTo(x[11]*(s/(s+z[11])), y[11]*(s/(s+z[11])));
lineTo(x[6]*(s/(s+z[6])), y[6]*(s/(s+z[6])));
//1.3
moveTo(x[0]*(s/(s+z[0])), y[0]*(s/(s+z[0])));
lineTo(x[6]*(s/(s+z[6])), y[6]*(s/(s+z[6])));
moveTo(x[1]*(s/(s+z[1])), y[1]*(s/(s+z[1])));
lineTo(x[7]*(s/(s+z[7])), y[7]*(s/(s+z[7])));
moveTo(x[3]*(s/(s+z[3])), y[3]*(s/(s+z[3])));
lineTo(x[9]*(s/(s+z[9])), y[9]*(s/(s+z[9])));
moveTo(x[4]*(s/(s+z[4])), y[4]*(s/(s+z[4])));
lineTo(x[10]*(s/(s+z[10])), y[10]*(s/(s+z[10])));
moveTo(x[5]*(s/(s+z[5])), y[5]*(s/(s+z[5])));
lineTo(x[11]*(s/(s+z[11])), y[11]*(s/(s+z[11])));
//2.1
moveTo(x[12]*(s/(s+z[12])), y[12]*(s/(s+z[12])));
lineTo(x[13]*(s/(s+z[13])), y[13]*(s/(s+z[13])));
curveTo(x[14]*(s/(s+z[14])), y[14]*(s/(s+z[14])), x[15]*(s/(s+z[15])), y[15]*(s/(s+z[15])));
lineTo(x[16]*(s/(s+z[16])), y[16]*(s/(s+z[16])));
lineTo(x[17]*(s/(s+z[17])), y[17]*(s/(s+z[17])));
lineTo(x[12]*(s/(s+z[12])), y[12]*(s/(s+z[12])));
//2.2
moveTo(x[18]*(s/(s+z[18])), y[18]*(s/(s+z[18])));
lineTo(x[19]*(s/(s+z[19])), y[19]*(s/(s+z[19])));
curveTo(x[20]*(s/(s+z[20])), y[20]*(s/(s+z[20])), x[21]*(s/(s+z[21])), y[21]*(s/(s+z[21])));
lineTo(x[22]*(s/(s+z[22])), y[22]*(s/(s+z[22])));
lineTo(x[23]*(s/(s+z[23])), y[23]*(s/(s+z[23])));
lineTo(x[18]*(s/(s+z[18])), y[18]*(s/(s+z[18])));
//2.3
moveTo(x[12]*(s/(s+z[12])), y[12]*(s/(s+z[12])));
lineTo(x[18]*(s/(s+z[18])), y[18]*(s/(s+z[18])));
moveTo(x[13]*(s/(s+z[13])), y[13]*(s/(s+z[13])));
lineTo(x[19]*(s/(s+z[19])), y[19]*(s/(s+z[19])));
moveTo(x[15]*(s/(s+z[15])), y[15]*(s/(s+z[15])));
lineTo(x[21]*(s/(s+z[21])), y[21]*(s/(s+z[21])));
moveTo(x[16]*(s/(s+z[16])), y[16]*(s/(s+z[16])));
lineTo(x[22]*(s/(s+z[22])), y[22]*(s/(s+z[22])));
moveTo(x[17]*(s/(s+z[17])), y[17]*(s/(s+z[17])));
lineTo(x[23]*(s/(s+z[23])), y[23]*(s/(s+z[23])));
//3.1
moveTo(x[24]*(s/(s+z[24])), y[24]*(s/(s+z[24])));
lineTo(x[25]*(s/(s+z[25])), y[25]*(s/(s+z[25])));
curveTo(x[26]*(s/(s+z[26])), y[26]*(s/(s+z[26])), x[27]*(s/(s+z[27])), y[27]*(s/(s+z[27])));
lineTo(x[28]*(s/(s+z[28])), y[28]*(s/(s+z[28])));
lineTo(x[29]*(s/(s+z[29])), y[29]*(s/(s+z[29])));
lineTo(x[24]*(s/(s+z[24])), y[24]*(s/(s+z[24])));
//3.2
moveTo(x[30]*(s/(s+z[30])), y[30]*(s/(s+z[30])));
lineTo(x[31]*(s/(s+z[31])), y[31]*(s/(s+z[31])));
curveTo(x[32]*(s/(s+z[32])), y[32]*(s/(s+z[32])), x[33]*(s/(s+z[33])), y[33]*(s/(s+z[33])));
lineTo(x[34]*(s/(s+z[34])), y[34]*(s/(s+z[34])));
lineTo(x[35]*(s/(s+z[35])), y[35]*(s/(s+z[35])));
lineTo(x[30]*(s/(s+z[30])), y[30]*(s/(s+z[30])));
//3.3
moveTo(x[24]*(s/(s+z[24])), y[24]*(s/(s+z[24])));
lineTo(x[30]*(s/(s+z[30])), y[30]*(s/(s+z[30])));
moveTo(x[25]*(s/(s+z[25])), y[25]*(s/(s+z[25])));
lineTo(x[31]*(s/(s+z[31])), y[31]*(s/(s+z[31])));
moveTo(x[27]*(s/(s+z[27])), y[27]*(s/(s+z[27])));
lineTo(x[33]*(s/(s+z[33])), y[33]*(s/(s+z[33])));
moveTo(x[28]*(s/(s+z[28])), y[28]*(s/(s+z[28])));
lineTo(x[34]*(s/(s+z[34])), y[34]*(s/(s+z[34])));
moveTo(x[29]*(s/(s+z[29])), y[29]*(s/(s+z[29])));
lineTo(x[35]*(s/(s+z[35])), y[35]*(s/(s+z[35])));
};
-----------------------------------------------------------------------------------
Зарание спасибо!

Старый 19.03.2004, 17:37
FreeLander вне форума Посмотреть профиль Отправить личное сообщение для FreeLander Найти все сообщения от FreeLander
  № 2  
FreeLander
 
Аватар для FreeLander

Регистрация: Jan 2004
Адрес: нигде - не осталось на Земле свободных земель(
Сообщений: 1,176
ну ты конечно крутой кусок кода выложил!
Извини, я ленивый и подробно разбираться не стал, возможно моё сообщение тебе чем нибудь поможет.
Итак, делаешь createEmptyMovieClip() два раза, соответственно в соседних слоях. На обоих клипах рисуешь программно своё изображение, а потом тот клип что пониже сдвигаешь малость пониже и например левее (._x, ._y) ну и делаешь ему прозрачность, например ._ alpha=50. Ну и вот этот последний клип и будет тенью.
Твой "килограм" кода я бы запихнул в отдельную функцию, которая рисовала бы это изображение на любом объекте, задаваемом в качестве параметра.
Следующая функция рисует прямоугольник именно таким образом. drwObj-строка с именем объекта на котором будет прорисовка.:

drawRect=function(drwObj,x1,y1,x2,y2){
trace("drawing rect");
with(eval(drwObj)){
lineStyle(0,0x000000,0);
beginFill(0x000099,10);
moveTo(x1,y1);
lineTo(x1,y2);
lineTo(x2,y2);
lineTo(x2,y1);
lineTo(x1,y1);
endFill();
}
}


Вроде всё, если не в тему - извиняйте.

Старый 21.03.2004, 12:15
nuran вне форума Посмотреть профиль Отправить личное сообщение для nuran Найти все сообщения от nuran
  № 3  
nuran

Регистрация: Apr 2003
Адрес: DC
Сообщений: 4,489
проецируй вершины на плоскость, на которую ты хочеш тень наложить
__________________
flash/flex/unity

Старый 23.03.2004, 17:47
opex вне форума Посмотреть профиль Отправить личное сообщение для opex Найти все сообщения от opex
  № 4  
opex
[+1.3 05.04.09]
 
Аватар для opex

Регистрация: Sep 2003
Адрес: Где-то рядом.
Сообщений: 686
Отправить сообщение для opex с помощью ICQ Отправить сообщение для opex с помощью Skype™
приятно видеть свой исходники Gooddy а где взял
__________________
Бойтесь китайцев, компы приносящих!

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

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

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


 


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


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