vtk+四面体2
int main() { const int num_points = 5; static float x[num_points][3] = { {0,0,0},{1,0,0},{1,1,0},{0,1,0},{0.5,0.5,1} }; static vtkIdType pts[4][3] = { {0,1,4},{1,2,4},{2,3,4},{3,0,4} }; vtkNewcube; vtkNew points; vtkNew polys; vtkNew scalars; for (int i = 0; i < num_points; i++) points->InsertPoint(i, x[i]); for (int i = 0; i < 4; i++) polys->InsertNextCell(3, pts[i]); /*polys->InsertNextCell(4); for (int i = 0; i < 4; i++) { polys->InsertCellPoint(i); }*/ for (int i = 0; i < num_points; i++) scalars->InsertTuple1(i, i); cube->SetPoints(points); cube->SetPolys(polys); cube->GetPointData()->SetScalars(scalars); vtkNew cubeMapper; cubeMapper->SetInputData(cube); cubeMapper->SetScalarRange(0, 7); vtkNew cubeActor; cubeActor->SetMapper(cubeMapper); vtkNew camera; camera->SetPosition(1, 1, 1); camera->SetFocalPoint(0, 0, 0); vtkNew renderer; vtkNew renWin; renWin->AddRenderer(renderer); vtkNew iren; iren->SetRenderWindow(renWin); renderer->AddActor(cubeActor); renderer->SetActiveCamera(camera); renderer->ResetCamera(); renderer->SetBackground(1, 1, 1); renWin->SetSize(300, 300); renWin->Render(); iren->Initialize(); iren->Start(); return 0; }
注意注释内容。
vtkNewcube; vtkNew points; vtkNew lines; for (int i = 0; i < num_points; i++) points->InsertPoint(i, x[i]); for (int i = 0; i < num_points - 1; i++) { lines->InsertNextCell(2); lines->InsertCellPoint(i); lines->InsertCellPoint(num_points - 1); lines->InsertNextCell(2); lines->InsertCellPoint(i); lines->InsertCellPoint((i + 1) % (num_points - 1)); } cube->SetPoints(points); cube->SetLines(lines);
线框模型的表达方法。
------------恢复内容结束------------