![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+4 06.05.14]
|
Собственно создаю 3д объект типа шейп допустим куб ( из линий только ) . Добавляю на сцену, естственно он имеет координаты 0,0,0 .
Следующим шагом как показывает хелп нужно доабвить z координату. Делаем. Ну и с помощью 3дматрицы пробуем вставить точку в центр и крутить вокруг нее, как описано в хелпе Из хелпа myObject.z = 1; myObject.transform.matrix3D.appendTranslation(10,10,0); myObject.transform.matrix3D.appendRotation(1, Vector3D.YAXIS); myObject.transform.matrix3D.appendTranslation(-10,-10,0); cont.z = 1 ( допустим 100*100*100 размеры ) cont.addEventListener ( Event.ENTER_FRAME , onFrame); private function onFrame(e:Event):void { cont.transform.matrix3D.appendTranslation(100,100,100); cont.transform.matrix3D.appendRotation(0.05, Vector3D.Y_AXIS); cont.transform.matrix3D.appendTranslation(-100,-100, -100); } |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Дайте весь код. Иначе непонятно, что Вы подразумеваете под "точка регистрации в центре", почему смещаете на 100, каков размер сцены и, главное, где начало координат Вашего кубика, вокруг которого он крутится. Я так понимаю что он не в центре куба, а в левой верхней передней (или задней?) вершине.
__________________
Reality.getBounds(this); |
|
|||||
|
[+4 06.05.14]
|
@Wolsh ну я же написал. точка регистрации после создания находится в 0-0-0. А мне нужно поместить в центр фигуры, представьте сферу точка пересечения окружностей ( диаметров ) в цеентре вообщем. ВОт туда и надо поместить точку и крутить вокруг нее. Размер сцены тут не причем, размер шейпа 100*100*100 например, это я тоже сказал.
Цитата:
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Размер сцены причем. В ее центре находится глаз наблюдателя.
Размер куба 100х100х100. Смещаясь на 100 для поворота - чего Вы хотели добиться? Центра?
__________________
Reality.getBounds(this); |
|
|||||
|
[+4 06.05.14]
|
Извиняюсь не корректно написал ошибочка. Исправил ( но неверно я написал лишь на форуме, а не у себя, поэтому вопрос висит ). Размер сцены скажем 800*600 пускай раз причем
|
|
|||||
|
Регистрация: Mar 2009
Адрес: Kazakhstan, Almaty
Сообщений: 121
|
добавляем в контейнер стороны куба
размещаем их таким образом stors[0].x = 0; stors[0].y = 0; stors[0].z = -50; stors[0].rotationZ = 0; stors[1].x = 0; stors[1].y = 0; stors[1].z = 50; stors[1].rotationZ = 0; stors[2].x = 50; stors[2].y = 0; stors[2].z = 0; stors[2].rotationY = 90; stors[3].x = -50; stors[3].y = 0; stors[3].z = 0; stors[3].rotationY = 90; stors[4].x = 0; stors[4].y = 50; stors[4].z = 0; stors[4].rotationX = 90; stors[5].x = 0; stors[5].y = -50; stors[5].z = 0; stors[5].rotationX = 90; matrixCube.appendTranslation(-pos.x, -pos.y, -pos.z); matrixCube.appendRotation(0.7, vect2); matrixCube.appendTranslation(pos.x, pos.y, pos.z); выглядит так: во вложении.
__________________
заткнись и делай Последний раз редактировалось gr_crd; 16.02.2011 в 16:22. |
|
|||||
|
[+4 06.05.14]
|
gr_crd а почему так сложно то? Разве нет варианта более рационального с использованием матриц ?
Да и тем более не понятно начало : cube это наша фигура. ок stc количество углов-вершин, как я понимаю. ок И почему их 6 всего а не 8 )) Как то все странно. Попробую рассказать предисторию создания. Я создаю шейп из линий ( сетка ) горизонтальные и вертикальные линии, обычный mash как в любом 3д редакторе. Затем в цикле 1. Создаю дубликаты сетки и смещаю их по z ( на желаемое расстояние друг от друга ) 2. Создаю дубликаты сетки, поворачиваю на 90 градусов (RotationX вроде) и смещаю по y ( тут уже по z смещать не надо, при повороте он сам преобретает z координату) В итоге получается псевдо-куб с эффектом x-Ray , так сказать. Добавляю его на сцену ( ширина и высота = размерам сцены ) , а по z = высоте сцены. Все теперь мы видим куб из линий который закрывает всю область сцены, фронтальной смотрит на нас. При добавлении он добавляется на координату 0-0-0 соотв, я так думаю. Затем я ему даю z = 1 ; И пробую работать с матрицами как я описал ( соотв вместо 100 там другие размеры от сцены ) |
|
|||||
|
Регистрация: Mar 2009
Адрес: Kazakhstan, Almaty
Сообщений: 121
|
Цитата:
stors - массив шейпов (сторон куба) Цитата:
Цитата:
ps. а вообще, удобнее отображать 3d-объекты с помощью drawTriangles() || lineTo(). правда придется немного почитать.
__________________
заткнись и делай Последний раз редактировалось gr_crd; 16.02.2011 в 17:07. |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 400
|
gr_crd, а можно исходник?) оч круто)
|
|
|||||
|
[+4 06.05.14]
|
Цитата:
proxiServer - если тебе такое надо используй обычный away3d или alternativa3d напимер. Там это делается за считанные секунды с любой графикой |
![]() |
![]() |
Часовой пояс GMT +4, время: 09:27. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|