Я спросил на другом форуме, но я подумал, что хотел бы быть более ясным в своей проблеме. < /p>
Что мое намерение? Моя камера должна быть интерактивной с моим устройством Android, что означает, что я установил положение, динамически перемещая устройство. Эти векторы поступают из Slam-Algorithmn, названной прямой редкой одометрией, которая воссоздает положение камеры, я также могу вызвать эти значения JavaScript, используя предоставленную WebViewInterface от Android. Моя цель состоит в том, чтобы «ходить» по ящику динамически, не используя камеру. Моя цель состоит в том, чтобы разместить объект над объектом реального мира с тремя. Вся визуализация должна быть создана с помощью Three.js. < /P>
Что такое DSO? Это отправило мне матрицу преобразования 4x4 с текущей позой, которую я пытаюсь применить в положении камеры Three.js. Из -за сложности этого алгоритма давайте притворяемся, что это дает мне надлежащие значения (в метрах, но я также пытался умножить значения на 10 или 100, чтобы получить большие результаты, чем 0.xx). < /P>
Какова моя проблема?
. Коробка, кажется, не имеет абсолютной позиции, даже если значения, кажется, исправлены. Каждый раз, когда я размещаю коробку, она, кажется, движется в противоположном направлении. После многих настройки значений DSO я кристально ясно, что эта проблема происходит с Three.js.
Я также попытался применить матрицы сцены/камеры и/или использование коробки в детстве (из-за объекта-ирита), но коробка, похоже, не имеет абсолютной позиции внутри сцены. Также я не могу повернуть объект, который кажется реалистичным. < /P>
прилагается, вы найдете мой код, но p
аренда. Я использую динамически фиктивные значения в качестве замены для значений DSO. < /P>
// Var Init
var renderer, scene, camera, box, transformControl, orbitControl, geometry, material, poseMatrix;
var mPoints = [];
//Box coordinate
var xBCordinate, yBCordinate, zBCordinate, isScaled, posVec, startPosVec, lookPos, helper;
var process = false;
var scanActive = false;
var pointArr = [];
init();
animate();
function init() {
// renderer
renderer = new THREE.WebGLRenderer({canvas: document.getElementById("mCanvas"),
alpha: true});
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );
renderer.setClearColor(0xffffff, 0);
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
// scene
scene = new THREE.Scene();
// camera
camera = new THREE.PerspectiveCamera(
45,
window.innerWidth / window.innerHeight,
0.1,
1000
);
camera.up.set(0, 0, 1); // Definition of coordinationsystem
// set initial scale position of camera
camera.position.x = 0;
camera.position.y = -0.5;
camera.position.z = 0.15;
scene.add(camera);
// set position to look at
camera.lookAt(0,2.5,-0.2);
// apply values
camera.updateMatrix();
// light
var light = new THREE.HemisphereLight( 0xeeeeee, 0x888888, 1 );
light.position.set( 0, -0.75, 2.5 );
scene.add(light);
placeBox();
}
function placeBox()
{
geometry = new THREE.BoxGeometry(0.5, 1, 0.5); //3,5,3
material = new THREE.MeshLambertMaterial({color: 0xfece46});
box = new THREE.Mesh(geometry, material);
box.position.set(0, 2.5, -0.2);
box.updateMatrix();
scene.add(box);
}
function animate() {
requestAnimationFrame(animate);
if(process == false){
setCurrentPose();
}
renderer.render(scene, camera);
}
function setCurrentPose(){
process = true;
// this is where I receive the position data via Android
// but lets try using random numbers between 0.01 - 0.99 (which are the results interval of dso)
moveRotateCamera();
}
function moveRotateCamera(){
// Create Vector to work with
posVec = new THREE.Vector3();
posVec.x = getRandomFloat(0.01, 0.99);
posVec.y = pgetRandomFloat(0.01, 0.99);
posVec.z = getRandomFloat(0.01, 0.99);
camera.position.x = posVec.x;
camera.position.y = (posVec.y) - 0.50; // minus initial scale position
camera.position.z = (posVec.z) + 0.15;
// camera.updateMatrix();
ссылка на мою скрипку < /p>
У вас есть какие -либо предложения? < /p>
Большое спасибо>
Подробнее здесь: https://stackoverflow.com/questions/598 ... the-device
Три. ⇐ Android
Форум для тех, кто программирует под Android
1758421294
Anonymous
Я спросил на другом форуме, но я подумал, что хотел бы быть более ясным в своей проблеме. < /p>
Что мое намерение? Моя камера должна быть интерактивной с моим устройством Android, что означает, что я установил положение, динамически перемещая устройство. Эти векторы поступают из Slam-Algorithmn, названной прямой редкой одометрией, которая воссоздает положение камеры, я также могу вызвать эти значения JavaScript, используя предоставленную WebViewInterface от Android. Моя цель состоит в том, чтобы «ходить» по ящику динамически, не используя камеру. Моя цель состоит в том, чтобы разместить объект над объектом реального мира с тремя. Вся визуализация должна быть создана с помощью Three.js. < /P>
Что такое DSO? Это отправило мне матрицу преобразования 4x4 с текущей позой, которую я пытаюсь применить в положении камеры Three.js. Из -за сложности этого алгоритма давайте притворяемся, что это дает мне надлежащие значения (в метрах, но я также пытался умножить значения на 10 или 100, чтобы получить большие результаты, чем 0.xx). < /P>
Какова моя проблема?
. Коробка, кажется, не имеет абсолютной позиции, даже если значения, кажется, исправлены. Каждый раз, когда я размещаю коробку, она, кажется, движется в противоположном направлении. После многих настройки значений DSO я кристально ясно, что эта проблема происходит с Three.js.
Я также попытался применить матрицы сцены/камеры и/или использование коробки в детстве (из-за объекта-ирита), но коробка, похоже, не имеет абсолютной позиции внутри сцены. Также я не могу повернуть объект, который кажется реалистичным. < /P>
прилагается, вы найдете мой код, но p
аренда. Я использую динамически фиктивные значения в качестве замены для значений DSO. < /P>
// Var Init
var renderer, scene, camera, box, transformControl, orbitControl, geometry, material, poseMatrix;
var mPoints = [];
//Box coordinate
var xBCordinate, yBCordinate, zBCordinate, isScaled, posVec, startPosVec, lookPos, helper;
var process = false;
var scanActive = false;
var pointArr = [];
init();
animate();
function init() {
// renderer
renderer = new THREE.WebGLRenderer({canvas: document.getElementById("mCanvas"),
alpha: true});
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );
renderer.setClearColor(0xffffff, 0);
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
// scene
scene = new THREE.Scene();
// camera
camera = new THREE.PerspectiveCamera(
45,
window.innerWidth / window.innerHeight,
0.1,
1000
);
camera.up.set(0, 0, 1); // Definition of coordinationsystem
// set initial scale position of camera
camera.position.x = 0;
camera.position.y = -0.5;
camera.position.z = 0.15;
scene.add(camera);
// set position to look at
camera.lookAt(0,2.5,-0.2);
// apply values
camera.updateMatrix();
// light
var light = new THREE.HemisphereLight( 0xeeeeee, 0x888888, 1 );
light.position.set( 0, -0.75, 2.5 );
scene.add(light);
placeBox();
}
function placeBox()
{
geometry = new THREE.BoxGeometry(0.5, 1, 0.5); //3,5,3
material = new THREE.MeshLambertMaterial({color: 0xfece46});
box = new THREE.Mesh(geometry, material);
box.position.set(0, 2.5, -0.2);
box.updateMatrix();
scene.add(box);
}
function animate() {
requestAnimationFrame(animate);
if(process == false){
setCurrentPose();
}
renderer.render(scene, camera);
}
function setCurrentPose(){
process = true;
// this is where I receive the position data via Android
// but lets try using random numbers between 0.01 - 0.99 (which are the results interval of dso)
moveRotateCamera();
}
function moveRotateCamera(){
// Create Vector to work with
posVec = new THREE.Vector3();
posVec.x = getRandomFloat(0.01, 0.99);
posVec.y = pgetRandomFloat(0.01, 0.99);
posVec.z = getRandomFloat(0.01, 0.99);
camera.position.x = posVec.x;
camera.position.y = (posVec.y) - 0.50; // minus initial scale position
camera.position.z = (posVec.z) + 0.15;
// camera.updateMatrix();
ссылка на мою скрипку < /p>
У вас есть какие -либо предложения? < /p>
Большое спасибо>
Подробнее здесь: [url]https://stackoverflow.com/questions/59898236/three-js-rotate-camera-around-object-by-moving-the-device[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия