2017-02-18 3 views
0

http://adndevblog.typepad.com/cloud_and_mobile/2015/12/understand-the-coordinate-system-of-view-and-data-api-with-axishelper-extension.htmlНе удается рисовать линии в 3D-браузере?

1, вышеуказанное не работает в текущем телезрителе, мысли?

2, Августо говорит: https://stackoverflow.com/a/39123356/5410501

Однако 3D ограничивающего расширение окна, кажется, функционирует в демонстрационной странице: http://viewer.autodesk.io/node/gallery/embed?id=560c6c57611ca14810e1b2bf&extIds=Autodesk.ADN.Viewing.Extension.BoundingBox

Я хочу (потребность), чтобы рисовать линии в 3D-просмотре и 2D просмотре , Как я могу это сделать?

Код, указанный ниже в V2.11, кажется, не рисует линии. Попробуйте http://viewer.autodesk.io/node/gallery/#/viewer?id=57ecc0fc21f5a6ec046dd0fd

с нижним вставляемым в консоль.

var drawLine = function(start, end, material) { 

     var geometry = new THREE.Geometry(); 

     geometry.vertices.push(new THREE.Vector3(
      start.x, start.y, start.z)); 

     geometry.vertices.push(new THREE.Vector3(
      end.x, end.y, end.z)); 

     var line = new THREE.Line(geometry, material); 

     NOP_VIEWER.impl.scene.add(line); 
     //refresh NOP_VIEWER 
     NOP_VIEWER.impl.invalidate(true); 

     return line; 
} 

var _axisLines = []; 

    //get bounding box of the model 
    var boundingBox = NOP_VIEWER.model.getBoundingBox(); 
    var maxpt = boundingBox.max; 
    var minpt = boundingBox.min; 

    var xdiff = maxpt.x - minpt.x; 
    var ydiff = maxpt.y - minpt.y; 
    var zdiff = maxpt.z - minpt.z; 

    //make the size is bigger than the max bounding box 
    //so that it is visible 
    var size = Math.max(xdiff,ydiff,zdiff) * 1.2; 
    //console.log('axix size :' + size); 


    // x-axis is red 
    var material_X_Axis = new THREE.LineBasicMaterial({ 
     color: 0xff0000, //red 
     linewidth: 2 
    }); 
    NOP_VIEWER.impl.matman().addMaterial('material_X_Axis',material_X_Axis,true); 
    //draw the x-axix line 
    var xLine = drawLine(
     {x : 0, y : 0, z : 0} , 
     {x : size, y : 0, z : 0} , 
     material_X_Axis); 

    _axisLines.push(xLine); 


    // y-axis is green 
    var material_Y_Axis = new THREE.LineBasicMaterial({ 
     color: 0x00ff00, //green 
     linewidth: 2 
    }); 
    NOP_VIEWER.impl.matman().addMaterial('material_Y_Axis',material_Y_Axis,true); 
    //draw the y-axix line 
    var yLine = drawLine(
     {x : 0, y : 0, z : 0} , 
     {x : 0, y : size, z : 0} , 
     material_Y_Axis); 

    _axisLines.push(yLine); 


    // z-axis is blue 
    var material_Z_Axis = new THREE.LineBasicMaterial({ 
     color: 0x0000ff, //blue 
     linewidth: 2 
    }); 
    NOP_VIEWER.impl.matman().addMaterial('material_Z_Axis',material_Z_Axis,true); 
    //draw the z-axix line 
    var zLine = drawLine(
     {x : 0, y : 0, z : 0} , 
     {x : 0, y : 0, z : size} , 
     material_Z_Axis); 

    _axisLines.push(zLine); 

console.log(_axisLines); 
+0

В расширении Bounding Box зритель загружается локально и является версией 1.2.23. Я могу легко нарисовать линии в этом представлении с точным кодом, размещенным на http://adndevblog.typepad.com/cloud_and_mobile/2015/12/understand-the-coordinate-system-of-view-and-data-api-with- axishelper-extension.html – MarshAPI

+0

Я могу рисовать линии, используя расширение BondingBox как есть в последней версии программы просмотра в 3D-моделях: v 2.13. Если у вас возникли проблемы, отправьте образец кода, который может воспроизвести проблему. –

+0

образец кода, добавленный с образцом ссылки для просмотра, который, похоже, не похож на этот код рисования линии. (рада узнать, что это должно быть возможно) – MarshAPI

ответ

0

Могу ли я узнать, с какой версией вы тестируете?

Я создал простой тест, чтобы использовать коды AxisHelper. Похоже, он может работать с текущей версией Viewer версии по умолчанию (2.10). Я также явно устанавливаю версию в 2.11, она также может работать. https://github.com/xiaodongliang/TempTest

Как показывает блог, чтобы добавить дополнительные геометрии к зрителю, родные объекты three.js будут созданы, а затем добавил к зрителю сцены, наконец, обновить вид на viewer.impl.invalidate.

Надеюсь, что этот тестовый образец может вам помочь. Если вы используете v2.10 или, v2.11, и все еще имеете проблему, можете ли вы предоставить небольшие демо-коды?

 Смежные вопросы

  • Нет связанных вопросов^_^