Я использую майави в python для визуализации некоторых данных. У меня есть поверхность в 3D-пространстве, и я хочу отобразить на ней изображение. Я просмотрел документацию Mayavi, и все, что я мог найти, было this, что на самом деле мне не очень помогает. Кто-нибудь сделал что-то подобное раньше?Отображение текстуры в майави-сетке
ответ
Я обнаружил, что функция mesh
действительно принимает аргумент scalars
, который затем окрашивает соответствующую точку на поверхности в соответствии с выбранной цветовой палитрой. Однако я все же не знаю, как сопоставить произвольное изображение RGB на поверхности.
Хорошо. Теперь я знаю, что вы хотите сделать, но я не уверен, как его решить. Может ли опция 'color'' surf' помочь вам? – ahelm
Я думаю, вы не видели главу «Питоны на языке Python для 3D-графика». Существует коллекция команд майави, которые могут использоваться внутри python. Например, раздел "3D Plotting functions for numpy arrays". Если вы следуете ссылкам, вы найдете описание функций и небольшой пример для каждого из них.
Для вашего дела вы должны принять mesh
или surf
. Обе функции являются равными, но различны. Например, функция surf
является более подфункцией mesh
, что, на мой взгляд. Вам не нужно определять координаты x и y, вам просто нужны z-координаты в 2D-массиве. Если вы хотите использовать mesh
, вам необходимо передать все три координаты (x, y, z) в виде 2D-массивов.
Я бы предложил проверить примеры.
Это ответ на ваш вопрос? Может быть, вы должны быть более конкретными в том, что вы хотите сделать.
Имейте приятный день и счастливые праздники.
Да, я это видел. Оказывается, это плохо написано. Думаю, вы тоже это видели, так как вы также не можете ответить на мой вопрос. – katrasnikj
Я действительно смог добиться этого в matplotlib, хотя и с очень низкой частотой кадров ... Следуя официальным примерам для 'Axes3D.plot_surface()', просто установите ключевое слово 'facecolors' равным желаемой текстуре , Я не помню, тестировал ли я его в RGB, но он работает в оттенках серого. – PhilMacKay