Символ вращающегося куба Python3.0 Mayavi

Использование Mayavi points3d и использование куба для построения изображения. Есть ли способ повернуть куб в определенную ориентацию во время сюжета?

mlab.figure(2)
mlab.points3d(GrainsFile[:,6],GrainsFile[:,7],GrainsFile[:,8],GrainsFile[:,11])

кубический сюжет Mayavi


person jinesh    schedule 15.03.2019    source источник
comment
Вращать каждый куб вокруг его центра? один куб в его центре? все кубы на центроиде?   -  person Felipe Lema    schedule 18.03.2019
comment
вращать каждый куб относительно его центра с помощью индивидуальной матрицы вращения. Есть ли способ предписать вращение глифа в Mayavi?   -  person jinesh    schedule 19.03.2019


Ответы (1)


Мне пришлось искать код Mayavi для этого. Как только я обнаружил, что эти кубы являются GlyphSource, я обнаружил некоторую операцию преобразования в одном из его методов:

import numpy
from mayavi import mlab

def test_points3d():
    t = numpy.linspace(0, 4 * numpy.pi, 20)

    x = numpy.sin(2 * t)
    y = numpy.cos(t)
    z = numpy.cos(2 * t)
    s = 2 + numpy.sin(t)

    points = mlab.points3d(x, y, z, s, colormap="viridis", scale_factor=.25,
    mode='cube')
    # rotate 45° on Z
    points.glyph.glyph_source._trfm.transform.rotate_z(45)
test_points3d()

пример points3d повернут на 45° по оси Z

person Felipe Lema    schedule 20.03.2019
comment
Спасибо, Фелипе. Это было очень полезно. - person jinesh; 20.03.2019
comment
если у меня есть x, y, z, s в виде списка, могу ли я передать массив для углов вместо (45) в вашем коде для отдельных кубов? - person jinesh; 23.03.2019
comment
Я не думаю, что вы можете с points3d(), так как код написан на предпосылке, что вы используете один объект GlyphSource (определение). Я бы порекомендовал поэкспериментировать с quiver3d(), пока не получите удовлетворительные результаты (хотя я не думаю, что вы сможете получить точно то, что запрашиваете) - person Felipe Lema; 25.03.2019
comment
Спасибо, Фелипе. Я не мог найти это в документации. Может быть, я должен думать о чем-то другом. - person jinesh; 26.03.2019