2017-01-24 4 views
0

Я использую VTK в течение месяца, и я заметил, что это лучший инструмент визуализации. Для моего доктора, я пытаюсь визуализировать сотни эллипсоидов и некоторых облаков точки с помощью VTK. До сих пор я хорошо визуализировал эллипсоиды и точечные облака, как показано на прилагаемом рисунке. Однако он должен быть разработан. Без каких-либо эффектов затенения и освещения невозможно отличить отдельные эллипсоиды (показано зеленым цветом). Например, есть несколько эллипсоидов в левом верхнем углу, но их нельзя отличить. Не могли бы вы помочь мне в решении этой проблемы? Как я могу сделать их различимыми? Я с нетерпением жду вашего ответа. Elipsoids and point cloudУлучшение визуализации геометрических фигур

+0

Вы пытались добавить границу? –

ответ

0

Вы можете использовать силуэты для выделения объектов. Ниже вы найдете прилагаемый код, демонстрирующий извлечение и визуализацию силуэтов с использованием класса vtkPolyDataSilhouette.

vtkSmartPointer<vtkPolyDataSilhouette> silhouette = vtkSmartPointer<vtkPolyDataSilhouette>::New(); 
silhouette->SetInputData(surface->GetOutput()); 
silhouette->SetCamera(renderer->GetActiveCamera()); 
silhouette->SetEnableFeatureAngle(1); 
silhouette->SetFeatureAngle(90); 

vtkSmartPointer<vtkPolyDataMapper> silhouetteMapper = vtkSmartPointer<vtkPolyDataMapper>::New(); 
silhouetteMapper->SetInputConnection(silhouette->GetOutputPort()); 
silhouetteMapper->Update(); 

vtkSmartPointer<vtkActor> silhouetteActor = vtkSmartPointer<vtkActor>::New(); 
silhouetteActor->SetMapper(silhouetteMapper); 

renderer->AddActor(silhouetteActor); 

Другой путь извлечения и визуализации контуров с помощью vtkContourFilter класса. Здесь вы можете найти пример, как использовать класс: https://itk.org/Wiki/VTK/Examples/Cxx/PolyData/ExternalContour

+0

Я использовал свойство диффузного цвета, и теперь намного лучше. Кстати, я пробовал класс vtkPolyDataSilhouette, но я получил сообщение об ошибке, что класс vtkParametricSuperEllipsoid не поддерживает метод GetOutput() metfod. – user887912