1

我有以下代码,我在 3d 空间中绘制点:

     vtkSmartPointer<vtkPoints> points =
            vtkSmartPointer<vtkPoints>::New();

        for(int in = 0; in<x.size(); in++)
        {
            points->InsertNextPoint (x[in], y[in], ry[in]);
        }

          vtkSmartPointer<vtkPolyData> pointsPolydata =
            vtkSmartPointer<vtkPolyData>::New();

          pointsPolydata->SetPoints(points);

          vtkSmartPointer<vtkVertexGlyphFilter> vertexFilter =
            vtkSmartPointer<vtkVertexGlyphFilter>::New();
        #if VTK_MAJOR_VERSION <= 5
          vertexFilter->SetInputConnection(pointsPolydata->GetProducerPort());
        #else
          vertexFilter->SetInputData(pointsPolydata);
        #endif
          vertexFilter->Update();

          vtkSmartPointer<vtkPolyData> polydata =
            vtkSmartPointer<vtkPolyData>::New();
          polydata->ShallowCopy(vertexFilter->GetOutput());

          // Setup colors
          unsigned char red[3] = {255, 0, 0};
          unsigned char green[3] = {0, 255, 0};
          unsigned char blue[3] = {0, 0, 255};

          vtkSmartPointer<vtkUnsignedCharArray> colors =
            vtkSmartPointer<vtkUnsignedCharArray>::New();
          colors->SetNumberOfComponents(3);
          colors->SetName ("Colors");
          colors->InsertNextTupleValue(red);
          colors->InsertNextTupleValue(green);
          colors->InsertNextTupleValue(blue);

          polydata->GetPointData()->SetScalars(colors);

          // Visualization
          vtkSmartPointer<vtkPolyDataMapper> mapper =
            vtkSmartPointer<vtkPolyDataMapper>::New();
        #if VTK_MAJOR_VERSION <= 5
          mapper->SetInputConnection(polydata->GetProducerPort());
        #else
          mapper->SetInputData(polydata);
        #endif

          vtkSmartPointer<vtkActor> actor =
            vtkSmartPointer<vtkActor>::New();
          actor->SetMapper(mapper);
          actor->GetProperty()->SetPointSize(5);

          vtkSmartPointer<vtkRenderer> renderer =
            vtkSmartPointer<vtkRenderer>::New();
          vtkSmartPointer<vtkRenderWindow> renderWindow =
            vtkSmartPointer<vtkRenderWindow>::New();
          renderWindow->AddRenderer(renderer);
          vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =
            vtkSmartPointer<vtkRenderWindowInteractor>::New();
          renderWindowInteractor->SetRenderWindow(renderWindow);

          renderer->AddActor(actor);

          this->ui->qvtkWidget->GetRenderWindow()->AddRenderer(renderer);
          renderWindowInteractor->Start();

当我得到结果图时。所有点都被绘制出来,但由于默认比例,很难看到任何东西。我不确定如何在 z 轴上放大视图。任何帮助,将不胜感激。

4

0 回答 0