Форум

Как провести линию между объектами?

14 июня 2016 14:54 #10082
Нужно провести прямую от объекта А к объекту Б. Есть функция draw_line(obj, positions, is_split) которая этим и занимается. Но, насколько я понимаю, она работает с локальными координатами. Например, точка отсчета (0,0,0) - центр объекта LineRender. Точка (N,N,N) - смещение от первой указанной точки и т.д. Как быть, если мне нужно провести линию от центра LineRender к точке в глобальных координатах? Есть ли в API движка функция пересчитывающая глобальные координаты в локальные?
Инди-разработчик игр, фанат Blender
http://prandgames.com
14 июня 2016 16:43 #10086
Есть ли в API движка функция пересчитывающая глобальные координаты в локальные?
Можно взять инвертированный TSR объекта, в локальные координаты которого нужно перевести, и применить его к точкам в глоб. пространстве.

Должно быть как-то так:

var m_trans = require("transform");
var m_tsr = require("tsr");
var m_vec3 = require("vec3");

var _tsr_tmp = m_tsr.create();
var _vec3_tmp = m_vec3.create();
...
// obj - объект LineRender
// global_vec - нужная точка в глоб. пространстве
var obj_tsr = m_trans.get_tsr(obj, _tsr_tmp);
var local_vec = m_tsr.transform_vec3_inv(global_vec, obj_tsr, _vec3_tmp);

Команда Blend4Web
15 июня 2016 08:50 #10094
О да, спасибо, то что нужно!
Инди-разработчик игр, фанат Blender
http://prandgames.com
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.