Three.js和VTK中的Pan

2024-06-25 23:02:16 发布

您现在位置:Python中文网/ 问答频道 /正文

什么变化三.js透视相机当我使用平移,除了位置?或者如何与VTK同步。旋转和缩放我同步只是给VTK三.js透视相机参数。下面是python中Pan的一些代码:

 def pan(self, start_x, start_y, dx, dy):
        '''
        Moving the model.
        '''
        end_x = start_x + dx
        end_y = start_y + dy
        dx = dx * self.world_coords_to_pixel_ratio
        dy = dy * self.world_coords_to_pixel_ratio
        matrix = self.renderer.GetActiveCamera().GetViewTransformMatrix()
        inverted_matrix = vtkMatrix4x4()
        dz = 0
        matrix.Invert(matrix, inverted_matrix)
        x, y, z = self.src_actor.GetPosition()
        dx, dy, dz = self._multiply_vtkMatrix4x4_by_vector(inverted_matrix,
            [dx, -dy, 0])
        camera = self.renderer.GetActiveCamera()
        self.src_actor.SetPosition(x + dx, y + dy, z + dz)
        self.selection_actor.SetPosition(x + dx, y + dy, z + dz)
        self.axes_and_bounding_box_actor.SetBounds(self.src_actor.GetBounds())
        self.renderer.ResetCameraClippingRange()

在三.js我用轨迹球控制


Tags: selfsrcworldjscoordsstartmatrixrenderer