gpt4 book ai didi

python - 使用 pythreejs : wrong perspective and camera look-at 嵌入小部件

转载 作者:行者123 更新时间:2023-12-03 14:48:07 26 4
gpt4 key购买 nike

我正在使用 pythreejs可视化一些 3D 模型。

在 Jupyter 笔记本上可视化模型时,一切都按预期进行。

但是当尝试将小部件嵌入 HTML 文档时,我面临两个问题:

  • 似乎相机在加载时正在查看 (0, 0, 0),而不是预期的那样,一旦您与小部件交互,相机将“跳跃”并开始查看预期坐标
  • projection (正射相机模式)也丢失了

  • 这是重现错误的代码和上述问题的动画:

    from ipywidgets import embed
    from pythreejs import *
    from IPython.display import display

    base = Mesh(
    BoxBufferGeometry(20, 0.1, 20),
    MeshLambertMaterial(color='green', opacity=0.5, transparent=True),
    position=(0, 0, 0),
    )
    cube = Mesh(
    BoxBufferGeometry(10, 10, 10),
    MeshLambertMaterial(color='green', opacity=0.5, transparent=False),
    position=(0, 5, 0),
    )
    target = (0, 5, 0)
    view_width = 600
    view_height = 400
    camera = CombinedCamera(position=[60, 60, 60], width=view_width, height=view_height)
    camera.mode = 'orthographic'
    lights = [
    PointLight(position=[100, 0, 0], color="#ffffff"),
    PointLight(position=[0, 100, 0], color="#bbbbbb"),
    PointLight(position=[0, 0, 100], color="#888888"),
    AmbientLight(intensity=0.2),
    ]
    orbit = OrbitControls(controlling=camera, target=target)
    camera.lookAt(target)
    scene = Scene(children=[base, cube, camera] + lights)
    renderer = Renderer(scene=scene, camera=camera, controls=[orbit],
    width=view_width, height=view_height)
    camera.zoom = 4

    embed.embed_minimal_html('export.html', views=renderer, title='Renderer')
    display(renderer)

    结果在笔记本中看起来不错:

    enter image description here

    但是当打开 export.html文件:

    enter image description here

    请注意立方体的 View 如何在交互时突然“跳跃”以及投影有何不同: perspective instead of orthographic (parallel) projection .

    这可能是 ipywidgets 的问题吗?由于在笔记本中显示时 View 没问题。

    怎么可能修好?

    最佳答案

    这是pythreejs ( https://github.com/jupyter-widgets/pythreejs/issues/308 ) 中的CombinedCamera 代码中的一个错误。同步逻辑将需要调用 updateProjectionMatrix当任何属性发生变化时在相机上。 OrbitController 在您与它交互时调用它,这就是为什么在交互时 View 是“固定的”。

    关于python - 使用 pythreejs : wrong perspective and camera look-at 嵌入小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59586889/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com