Форум

Подскажите назначение вашего кода

13 июня 2018 04:38
Добрый день, в "меблируем комнату" у вас определяется такой массив FLOOR_PLANE_NORMAL = [0, 1, 0]; подскажите его назначение и принцип работы, и если можно m_math.line_plane_intersect(FLOOR_PLANE_NORMAL, 0, _pline_tmp, camera_ray, _vec3_tmp3); значение 0 во втором аргументе за что оно отвечает ?? в вашем проекте комната находится в положении немного повернутом и прекрасно и удобно происходит перетаскивание объекта по комнате, в моем случае камера направлена ровно на стену перепендикулярно стоящую к камере и при перемещении объекта происходят скачки, мышка бежит быстрее самого объекта или в некоторых случаях медленнее, я не могу найти где исправить просчет пересечения луча камеры по отношению к объекту и к комнате, помогите пож новичку
13 июня 2018 13:59
Есть ли возможность выложить проект?
Александр (команда Blend4Web)
twitter
13 июня 2018 14:17
http://whdc.uaitlab.com
13 июня 2018 14:27
вправо влево более менее таскается объект. а вот вверх и низ на боковых стенах был полный аут, я через какие то проверки перезаписываю массив FLOOR_PLANE_NORMAL задавая ноли и единицы интуитивно и не понимая но стало немного лучше, но вот в меблируем комнату вообще идеально таскается
13 июня 2018 14:33
Вот под таким углом плохо :
19 июня 2018 11:01
Ну что же, хорошо что есть форум, спасибо всем за участие в обсуждении
19 июня 2018 11:43
В математике плоскость может быть представлена различными методами:
http://ru.onlinemschool.com/math/library/analytic_geometry/plane/

Нас интересует слудующий:
Уравнение плоскости, проходящей через точку, перпендикулярно вектору нормали
Чтобы составить уравнение плоскости, зная координаты точки плоскости M(x0, y0, z0) и вектора нормали плоскости n = {A; B; C} можно использовать следующую формулу.

A(x - x0) + B(y - y0) + C(z - z0) = 0


Если раскрыть скобки и объединить константы, то получим:
Ax + By + Cz - (Ax0 + By0 +Cz0) = 0

или
Ax + By + Cz + D = 0

Если поделить левую и правую часть на sqrt(AA+BB+CC), то получим
ax + bx + cz + d = 0

Или
n*r + d = 0
где n - нормаль к плоскости, d = -(n*r0) - расстояние от начала координат до плоскости.
Александр (команда Blend4Web)
twitter
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.