Как увеличить масштаб, чтобы он точно соответствовал ограничительной рамке в Autodesk Forge Viewer - PullRequest
0 голосов
/ 05 июля 2019

Мы хотим увеличить масштаб 2D-листа в программе просмотра кузниц, чтобы сделать снимок экрана и сшить несколько снимков экрана позже, чтобы получить лучшее качество изображения. Мы сталкиваемся с проблемой увеличения масштаба до точного ограничивающего прямоугольника, он всегда немного меньше, т.е. мы видим часть листа, которая не должна быть частью скриншота. Возьмите случай деления 2D-листа на равные 4 квадранта для увеличения и сделайте скриншот (мы можем увеличить квадранты / сечения в соответствии с требуемым качеством изображения позже), мы используем приведенный ниже код для увеличения,

var max = viewer.model.getBoundingBox().max;
var min = viewer.model.getBoundingBox().min;
var Q1Min = new THREE.Vector3( min.x, min.y, 0 )
var Q1Max = new THREE.Vector3( (min.x)+(max.x)/2, (min.y)+(max.y)/2, 0 )
var Q1Box =  new THREE.Box3(Q1Min, Q1Max);
viewer.navigation.fitBounds( immediate, Q1Box);

We also tried using below method, it also produces same result
viewer.impl.setViewFromViewBox(viewer.model, [Q1Min.x,Q1Min.y,Q1Max.x,Q1Max.y],'Q1',true)

Полный просмотр листа как видно в браузере.

Результат после выполнения кода выше.

Требуемый результат , обратите внимание на разницу в ширине изображения. В некоторых случаях высота и ширина становятся проблемой.

1 Ответ

0 голосов
/ 18 июля 2019

Инженер вернулся и предложил тот же обходной путь - и увидел живой пример, который я просто собрал, чтобы программно увеличить масштаб здесь :

  var direction = new THREE.Vector3();
  camera.getWorldDirection( direction );
  camera.position.add( direction.multiplyScalar(distance) ); //set distance move the camera forward to your needs
  viewer.navigation.setView(camera.position,viewer.navigation.getTarget())

Также см. здесь и здесь для примеров кода, применяющих вышеуказанное на практике.

Они признали, что это может быть ошибкой, но не предоставили больше подробностей - будут преследовать их, но предполагают, что на данный момент у них есть другие приоритеты, такие как поддержка недавно выпущенного Viewer v7.

...