Render.ru

Интерактивное 3D

norm

Пользователь сайта
Рейтинг
2
#1
Добрый день!
Мне необходимо создать 3д модель самолета в пространстве x-y-z причем координаты углов наклона будет обеспечивать цикл выдающий в зависимости от времени соответствующие углы наклона.
делал по уроку http://www.render.ru/books/show_book.php?book_id=277
не могу импортировать объект в Director MX 9.0.
при импорте файлы появляется ошибка:
Having trouble reading obj-plane.m3g. Continue importing?
импот файла не производится.

Сохраняю объект так:
создаю самолет, file -> export -> obj-plane.m3g

при сохранении вылазит 2 сообщения:
 

Вложения

norm

Пользователь сайта
Рейтинг
2
#2
Пожалуйста помогите! очень важно! мб хоть кто-нибудь модель самолета сохранит в 3mg?
 

norm

Пользователь сайта
Рейтинг
2
#3
где можно скачать плагин для 3ds max 9 для экспорта в Shockwave 3d Scene Export (*. w3d).
 

GoodMan

Мастер
Рейтинг
260
#4
Ищи здесь http://maxplugins.de

Хотя с 8-го МАХ-а он идет как встроенный плагин..
 

Alteste

Активный участник
Рейтинг
5
#5
оординаты углов наклона будет обеспечивать цикл выдающий в зависимости от времени соответствующие углы наклона
фраза выносит мозг
А вообще статья, по которой ты пытаешься сделать "интерактивное 3Д", старая. Сейчас можно найти менее геморный способ создания интерактивного 3Д приложения для веб, безо всяких скриптов (ну если на уровне "просто повертеть").
 

norm

Пользователь сайта
Рейтинг
2
#6
я сейчас сделал самолет вращающийся по нажатию клавишь,

Код:
on enterFrame me
  if keyPressed ("a") then
    member ("boing5").model("plane").rotate(0,2,0)
  end if
  if keyPressed ("d") then
    member ("boing5").model("plane").rotate(0,-2,0)
  end if
  if keyPressed ("w") then
    member ("boing5").model("plane").rotate(2,0,0)
  end if
  if keyPressed ("s") then
    member ("boing5").model("plane").rotate(-2,0,0)
  end if
  if keyPressed ("q") then
    member ("boing5").model("plane").rotate(0,0,2)
  end if
  if keyPressed ("e") then
    member ("boing5").model("plane").rotate(0,0,-2)
  end if
  if keyPressed ("r") then
    member("boing5").resetWorld( )
  end if
end
у меня задан цикл в котором происходит высчитывание углов ox, oy, oz.
в начале высчитываются определители импульсов (1 раз за время работы программы):

Код:
t:=0;
fi:=1;
fi_t:=1;
gam:=1;
O:=1;

p_fi:=
  j_x*(fi_t*sin(gam)*sin(O)+O_t*cos(gam))*sin(gam)+J_y*(fi_t*cos(gam)*sin(O)-O_t*sin(gam))*cos(gam)+
  J_z*(fi_t*cos(O)+gam_t)*cos(O);

p_gam:=J_z*(fi_t*cos(O)+gam_t);

p_O:=j_x*(fi_t*sin(gam)*sin(O)+O_t*cos(gam))*cos(gam)-J_y*(fi_t*cos(gam)*sin(O)-O_t*sin(gam))*sin(gam);

del_0:=0.5*J_x*J_X*J_Z*(3-cos(4*gam))*sin(O)+0.5*J_X*J_Y*J_Z*(3+cos(4*gam))*sin(O)+J_Z*J_Z*(J_X+J_Y)*
(1-cos(2*gam))*(1-cos(2*O))+0.5*J_y*J_y*J_Z*(1-cos(4*gam))-
0.5*(1-cos(4*gam))*({} (J_X*J_X*J_Z-J_x*J_Y*J_Z)*cos(O)+(J_Y*J_Y*J_Z-J_X*J_Y*J_Z)*sin(O) )-
0.5*({} J_X*J_Z*J_Z*(1+cos(2*gam))+J_Y*J_Z*J_Z*(1-cos(2*gam)) )*(3*cos(O)+cos(3*O));


del_fi:=2*({} J_x*J_Z*(1+cos(2*gam))+J_Y*J_Z*(1-cos(2*gam)) )*p_fi-2*(J_X*J_Z*sin(2*gam)-J_Y*J_z*sin(2*gam))*p_O-
({} J_X*J_Z*(1-cos(2*gam))+J_y*J_Z*(1+cos(2*gam)) )*(1+cos(2*O))*p_O;

del_gam:=({} 0.5*J_x*J_X*(3-cos(4*gam))*sin(O)+0.5*J_X*J_y*(3+cos(4*gam))*sin(O) )*p_gam+
2*({} J_X*J_Z*sin(2*gam)-J_y*J_Z*sin(2*gam) )*cos(O)*p_O-
0.5*(1-cos(4*gam))*({} (J_X*J_X-J_x*J_Y)*cos(O)+(J_Y*J_Y-J_X*J_Y)*sin(O) )*p_gam-
2*({} J_X*J_Z*(1+cos(2*gam))+J_Y*J_Z*(1-cos(2*gam)) )*cos(O)*p_fi; {??? какойто еще "+"}


del_O:=({} J_X*J_z*(1-cos(2*gam))*sin(O)+J_Y*J_Z*(1+cos(2*gam))*sin(O)+J_Z*J_z*(1+cos(2*O)) )*p_O+
0.5*({} J_x*J_z*sin(2*gam)*(3*cos(O)+cos(3*O))-J_Y*J_Z*sin(2*gam)*(3*sin(O)+sin(3*O)) )*p_gam-
({} J_X*J_z*sin(2*gam)*cos(O)-J_y*J_Z*sin(2*gam)*sin(O) )*p_gam-0.5*J_Z*J_Z*(3*cos(O)+cos(3*O) )*p_O;


{5}D_gam_del_0:=2*J_x*(J_x*J_z-J_y*J_z)*sin(4*gam)*sin(O)+2*J_z*J_z*(J_x+J_y)*sin(2*gam)*(1-cos(2*O))+2*J_y*J_y*J_z*sin(4*gam)-
2*sin(4*gam)*({}  (J_x*J_x*J_z-J_x*J_y*J_z)*cos(O)+(J_y*J_y*J_z-J_x*J_y*J_z)*sin(O))+J_z*J_z*(J_x-J_y)*sin(2*gam)*
(3*cos(O)+cos(3*O));

{6}D_O_del_0:=0.5*J_X*J_X*J_Z*(3-cos(4*gam))*cos(o)+0.5*J_X*J_Y*J_Z*(3+cos(4*gam))*cos(O)+
2*J_Z*J_Z*(J_x+J_y)*(1-cos(2*gam))*sin(2*o)+0.5*J_Y*J_Y*J_Z*(1-cos(4*gam))-
0.5*(1-cos(4*gam))*( J_X*J_Z*(J_x-J_Y)*sin(O)+J_Y*J_z*(J_x-J_Y)*cos(o))-
1.5*J_z*J_Z*(J_x*J_Z*J_z*(1+cos(2*gam))+J_Y*J_Z*J_Z*(1-cos(2*gam)) )*(sin(o)+sin(3*o));

{7}D_gam_del_fi:=
-4*J_Z*(J_X*sin(2*gam)-J_Y*sin(2*gam))*p_fi-4*J_z*(J_x*cos(2*gam)-J_y*cos(2*gam))*p_o-
2*J_z*(J_x*sin(2*gam)-J_Y*sin(2*gam))*(1+cos(2*O))*p_O;

{8} D_O_Del_fi:=2*J_z*(J_x*(1-cos(2*gam))+J_y*(1+cos(2*gam)) )*sin(2*O*p_O);

{9} D_gam_del_gam:=2*J_x*(J_x*sin(4*gam)*sin(O)-J_y*sin(4*gam)*sin(O))*p_gam+4*J_z*
(J_x*cos(2*gam)-J_y*cos(2*gam))*cos(O)*p_O-2*sin(4*gam)*(1-cos(4*gam))*
((J_x*J_x-J_x*J_y)*cos(O)+(J_y*J_y-J_x*J_y)*sin(O))*p_gam-2*J_z*(J_x*(1+cos(2*gam))+
J_y*(1-cos(2*gam)))*cos(O)*p_fi;

{10} D_O_Del_gam:=0.5*J_x*(  J_x*(3-cos(4*gam))*cos(O)+J_y*(3+cos(4*gam) )*cos(O))*p_gam-
2*J_z*(J_x*sin(2*gam)-J_y*sin(2*gam))*sin(O)*p_O+0.5*(1-cos(4*gam))*(J_x*(J_x-J_y)*sin(O)+
J_y*(J_x-J_y)*cos(O) )*p_gam+2*J_z*(J_x*(1+cos(2*gam))+J_y*(1-cos(2*gam)))*sin(O)*p_fi;

{11} D_gam_Del_O:=2*J_z*(J_x*sin(2*gam)-J_y*sin(2*gam))*sin(O)*p_O+J_z*(J_x*cos(2*gam)*(3*cos(O)+
cos(3*O))-J_y*cos(2*gam)*(3*sin(O)+sin(3*O)))*p_gam-J_z*(J_x*cos(2*gam)*cos(O)-
J_y*cos(2*gam)*sin(O))*p_fi;

{12} D_O_Del_O:=J_z*(J_x*(1-cos(2*gam))*cos(O)+J_y*(1+cos(2*gam))*cos(O)-2*J_z*sin(O))*p_O-
(1.5*J_z*(J_x*J_z*sin(2*gam)*(sin(O)+sin(3*O))+J_y*J_z*sin(2*gam)*(cos(O)+cos(3*O))*p_gam))+
J_z*(J_x*cos(2*gam)*cos(O)-J_y*cos(2*gam)*cos(O))*p_fi+(1.5*J_z*J_z*(sin(O)+sin(3*O))*p_O);

{13} D_P_gam_Del_fi:=0;

{14} D_P_fi_Del_O:=0;

{15} D_P_fi_del_fi:=2*(J_x*J_z*(1+cos(2*gam))+J_y*J_z*(1-cos(2*gam)));

{16} D_P_O_del_fi:=-2*J_z*(J_x*sin(2*gam)-J_y*sin(2*gam))-J_z*(J_x*(1-cos(2*gam))+
J_y*(1+cos(2*gam)))*(1+cos(2*O));

{17} D_P_fi_del_gam:=-2*(J_x*J_z*(1+cos(2*gam))+J_y*J_z*(1-cos(2*gam)))*cos(O);

{18} D_P_gam_Del_gam:=0.5*J_x*( 0.5*J_x*(3-cos(4*gam))*sin(O)+J_y*(3+cos(4*gam))*sin(O) )-
0.5*(1-cos(4*gam))*( (J_x*J_x-J_x*J_y)*cos(O)+(J_y*J_y-J_x*J_y)*sin(O) );

{19} D_P_O_Del_gam:=2*(J_x*J_z*sin(2*gam)-J_y*J_z*sin(2*gam))*cos(O);

{20} D_P_gam_del_O:=0.5*J_z*(J_x*sin(2*gam)*(3*cos(O)+cos(3*O))-J_y*sin(2*gam)*(3*sin(O)+sin(3*O)) );

{21} D_P_O_del_O:=J_z*(J_x*(1-cos(2*gam))*sin(O)+J_y*(1+cos(2*gam))*sin(O)+J_z*(1+cos(2*O)))+
0.5*J_z*J_z*(3*cos(O)+cos(3*O));
Теперь цикл который повторяется и меняет положение углов (повторяется много раз):

Код:
repeat
{1}
P_fi_t:=0;

{2} {2 proi3vodnaya}
P_gam_t:=(-1/(2*del_0*del_0))*({}  2*J_x*(del_fi*sin(gam)*sin(O)+del_O*cos(gam))*
(D_gam_del_fi*sin(gam)*sin(O)+del_fi*cos(gam)*sin(O)+D_gam_del_O*cos(gam)-del_o*sin(gam))*del_0+
J_x*(del_fi*sin(gam)*sin(O)+del_O*cos(gam))*(del_fi*sin(gam)*sin(O)+del_O*cos(gam))*D_gam_del_0+
2*J_y*(del_fi*cos(gam)*sin(O)-del_O*sin(gam))*(D_gam_del_fi*cos(gam)*sin(O)+
del_fi*sin(gam)*sin(O)+D_gam_del_O*sin(gam)+del_O*cos(gam))*del_0+
+J_y*(del_fi*cos(gam)*sin(O)-del_O*sin(gam))*(del_fi*cos(gam)*sin(O)-del_O*sin(gam))*D_gam_del_0+
+2*J_z*(del_fi*cos(O)+del_gam)*(D_gam_del_fi*cos(O)+D_gam_del_gam)*del_0+
J_z*(del_fi*cos(O)+del_gam)*D_gam_del_0  ) ;

{3}
P_O_t:=(-1/(2*del_0*del_0))*({}  2*J_x*(del_fi*sin(gam)*sin(O)+del_O*cos(gam))*
(D_O_del_fi*sin(gam)*sin(O)+del_fi*sin(gam)*cos(O) )*del_0+
J_x*(del_fi*sin(gam)*sin(O)+del_O*cos(gam) )*(del_fi*sin(gam)*sin(O)+del_O*cos(gam) )*D_O_del_0+
2*J_y*(del_fi*cos(gam)*sin(O)-del_O*sin(gam) )*(D_O_del_fi*cos(gam)*sin(O)+del_fi*sin(gam)*cos(O) )*del_0+
J_y*(del_fi*cos(gam)*sin(O)-del_O*sin(gam))*(del_fi*cos(gam)*sin(O)-del_O*sin(gam))*D_O_del_0+
2*J_z*(del_fi*cos(O)+del_gam)*(D_O_del_fi*cos(O)-del_fi*sin(O)+D_O_del_gam)*del_0+
J_z*(del_fi*cos(O)+del_gam))*D_O_del_0;

{4}
fi_t:=(1/(del_0))*({}  (J_x*(del_fi*sin(gam)*sin(O)+del_O*cos(gam))*sin(gam)*sin(O)*D_P_fi_del_fi+
J_y*(del_fi*cos(gam)*sin(O)-del_O*sin(gam))*cos(gam)*sin(O)*D_P_fi_del_fi+
J_z*(del_fi*cos(O)+del_gam)*cos(O)*D_P_fi_del_fi)  );

{5}
gam_t:=(J_z/del_0)*(del_fi*cos(O)+del_gam)*D_P_gam_del_gam;

{6}
O_t:=(1/del_0)*({}  (J_x*(del_fi*sin(gam)*sin(O)+del_O*cos(gam))*cos(gam)*D_P_O_del_O+
J_y*(del_fi*cos(gam)*sin(O)-del_O*sin(gam))*sin(gam)*D_P_O_del_O)  );

t:=t+0.01;


fi:=fi+fi_t*t;
gam:=gam+gam_t*t;
O:=O+O_t*t;


P_fi:=P_fi+P_fi_t*t;
P_gam:=P_gam+p_gam_t*t;
P_O:=P_O+P_O_t*t;

{СДЕСЬ НАДО ЧТОБЫ САМОЛЕТ ПЕРЕВЕРНУЛСЯ НА УГЛЫ:

0X=fi
0Y=gam
0Z=O

}
until t=120;

Пожалуйста эксперты ПОМОГИТЕ!!!
Из языков программирования знаю только делфи.
 
Сверху