3D визуализация с VTK/paraview

Вот моя проблема: у меня есть 2D-домен (скажем, квадрат), разделенный на треугольники неструктурированным образом. На каждом треугольнике (обозначаемом T) я определяю постоянный скаляр, обозначаемый f(T).

Я хочу построить поверхность (T,f(T)) с помощью Paraview.

Итак, я создал файл vtk следующим образом:

vtk DataFile Version 3.1

my personnal comment here

ASCII DATASET UNSTRUCTURED_GRID

POINTS 4 FLOAT

0 0 0

0 1 0

1 0 0

1 1 0

CELLS 2 8

3 0 1 2

3 1 2 3

CELL_TYPES 2

5 5

CELL_DATA 2

SCALARS Namedata double

LOOKUP_TABLE default

2

-5

Я хотел бы увидеть (спасибо Paraview) 3D-сюжет. В идеале визуализация на этом примере должна быть двумя треугольниками: первый должен иметь z-координату, равную 2, а второй должен иметь z-координату, равную -5. Я не знаю, возможно ли что-то и подходит ли формат vtk для того, что я пытаюсь сделать.

Если это невозможно, я был бы рад представить только две точки (x-координата треугольника номер 1, y-координата треугольника номер 1, z-координата = 2) и (x-координата треугольника номер 2, y-координата треугольника номер 2, z-координата = -5) с интерполяцией или без нее.


person user37238    schedule 06.04.2016    source источник
comment
Синтаксис вашего файла данных не совсем правильный. Здесь могут быть некоторые ошибки копирования и вставки. (1) Первая строка должна начинаться с символа #. (2) В файле не должно быть двойного интервала. У вас есть дополнительная новая строка после каждой строки. (3) Между ASCII и DATASET должна быть новая строка.   -  person Kenneth Moreland    schedule 06.04.2016
comment
@KennethMoreland Спасибо за этот комментарий, мне пришлось поместить данные здесь с неправильным синтаксисом, чтобы их можно было прочитать.   -  person user37238    schedule 07.04.2016


Ответы (1)


Это несложно сделать в ParaView. Существует фильтр под названием «Деформация по скаляру», который может переводить геометрию в направлении z (или в любом другом направлении) на основе скалярного поля. Единственная проблема заключается в том, что Warp By Scalar работает с точечными данными, а вы хотите деформировать данные ячеек. Итак, сначала вам нужно пройти несколько шагов.

  1. Добавьте к своим данным фильтр «Уменьшение». Установите для параметра «Масштабный коэффициент» значение 1. Применить. Ваши данные будут выглядеть так же, но будут разделены треугольники, которые на самом деле являются общими точками в ваших исходных данных.

  2. Добавьте фильтр «Данные ячейки в данные точки» к выходным данным фильтра сжатия. Применять.

  3. Добавьте фильтр «Деформация по скаляру» к выходным данным Cell Data to Point Data. Применять.

person Kenneth Moreland    schedule 06.04.2016
comment
Хорошо, позвольте мне попробовать это. - person user37238; 07.04.2016