Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   Вращение, 3D (http://www.flasher.ru/forum/showthread.php?t=87358)

BigDan 03.11.2006 13:31

Вращение, 3D
 
Есть триугольная пирамида. Научился вращять ее вокруг одной оси. Раскажите, пожалуйста, как будут изменятся кординаты ее вершин при вращении вокруг трех осей(x,y,z). Я знаю в сети есть много исходников, но в них тяжеловато разобратся.

aksios 03.11.2006 13:39

В общем, по любому движок 3D - сложная штука. Есть готовые компоненты 3D для флеш - с ними проще.

BigDan 03.11.2006 13:41

Как там связывать cos, sin, tg с кординатами при вращении(angleX, angleY, angleZ)?

etc 03.11.2006 13:58

http://etcs.ru/portfolio/bricks.fla — там все преобразование из 6 строк.

iNils 03.11.2006 14:00

Цитата:

Сообщение от BigDan
Раскажите, пожалуйста, как будут изменятся кординаты ее вершин при вращении вокруг трех осей(x,y,z). Я знаю в сети есть много исходников, но в них тяжеловато разобратся.

Формула вращения, что в исходниках, что тут, меняться не будет.

BigDan 03.11.2006 14:34

_etc можешь выписать формулу из исходника. Я то я там нифига не понимаю(у каждого свой стиль кодирования).

etc 03.11.2006 14:42

Ф-я move3D

BigDan 03.11.2006 15:55

Вложений: 1
_etc не подскажешь в чем проблемка?

etc 03.11.2006 16:33

Не подскажу, потому что без лишнего геморроя твой класс не запустишь.

BigDan 03.11.2006 21:45

_etc выпиши, пожалйуста, формулу в посте, в нормальном виде. Вставлял формулу из исходника, так чё-то не пашет.

etc 03.11.2006 22:02

Там 8-10 строк внутри второго цикла move3D, это преобразование трехмерных координат точки в двумерные.

BigDan 03.11.2006 22:28

Код:

x=x0*cos(angZ)-y0*sin(angZ);
y=y0*cos(angZ)+x0*sin(angZ);
z=z0*cos(angY)-x*sin(angY);
x=x*cos(angY)+z0*sin(angY);
z=y*sin(angX)+z*cos(angX);
y=y*cos(angX)-z*sin(angX);

Это оно?

BigDan 04.11.2006 14:47

Где можно нормальные статейки почитать на эту тему? А то я все облазил, ничё нормального не нашел.

BigDan 04.11.2006 19:59

Вложений: 1
Вот посмотрите, что у меня вышло. Стоит вопрос в следуйщем:
как закрасить грани, так чтоб линии не вылазили на заливку?

etc 05.11.2006 15:22

Определить глубину каждой грани, отсортировать, затем красить (или не красить, если грань невидима).
В моём же исходнике высчитывается координата z вектора нормали поверхности. Если значение отрицательно, то грань невидима (не всегда, зависит от того, с какой стороны у грани «лицо»).

Этому исходнику года полтора, я уже всё забыл.

Dendroid 05.11.2006 15:49

Цитата:

Сообщение от BigDan
Где можно нормальные статейки почитать на эту тему? А то я все облазил, ничё нормального не нашел.

Александров П.С. "Лекции по аналитической геометрии." Серьёзно. По крайней мере, не будут возникать вопросы типа: "Как будут изменяться координаты при вращении вокруг трёх осей".


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

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