Рисование тетраэдра в MATLAB R2011a

Я хочу нарисовать тетраэдр в MATLAB. Как я могу это сделать?

деловой кот


person user559096    schedule 06.07.2012    source источник
comment
Вы хотя бы знаете координаты его вершин?   -  person mathematician1975    schedule 06.07.2012
comment
Я погуглил и нашел на mathworks.com, что в MATLAB R2012a существует метод для этого. но в MATLAB R2011a такого метода нет.   -  person user559096    schedule 06.07.2012
comment
вы можете это сделать - вам просто нужно немного поработать. У вас есть координаты вершин?   -  person mathematician1975    schedule 06.07.2012
comment
да с такими координатами как мне его нарисовать?   -  person user559096    schedule 06.07.2012
comment
@ user559096 попробуйте мой ответ и посмотрите, работает ли он   -  person mathematician1975    schedule 06.07.2012
comment
@user559096 user559096 У вас сработало???   -  person mathematician1975    schedule 09.07.2012


Ответы (2)


Попробуй это

X = [x1 x2 x3 x4]';
Y = [y1 y2 y3 y4]';
Z = [z1 z2 z3 z4]';    
T = [1 2 3; 1 2 4; 2 3 4; 1 3 4];    
trimesh(T,X,Y,Z);

и посмотрите, работает ли он. Значения x1 y1 и z1 являются соответствующими координатами x y x вершины 1 (аналогично для других вершин). У меня сейчас нет доступа к MATLAB, поэтому я изменил это из своего кода генератора восьмиугольника. Возможно, вам придется поиграть с порядком вершин, чтобы заставить его работать, но этот подход позволит вам построить свой тетраэдр.

Редактировать: другой вариант — trisurf вместо trimesh, чтобы получить поверхность, а не каркас.

person mathematician1975    schedule 06.07.2012

    % Draws tetrahedron inscribed in sphere of radius 1
    function draw_regular_tetrahedron(T)

        T = 1/hypot(1, sqrt(2)/2)*T; % scale to fit in unit sphere

        z = 1/sqrt(2);
        S.Vertices = (T*[1,0,-z;-1,0,-z;0,1,z;0,-1,z]')';
        S.Faces = [1,3,4;2,3,4;1,2,3;1,2,4];
        S.FaceVertexCData = [ 1 ];
        S.FaceColor = 'flat';
        S.EdgeColor = 'green';
        p = patch(S);
        alpha(p, 0.5);
    end

>> ps_5_2.draw_regular_tetrahedron(eye(3))
>> ps_5_2.draw_regular_tetrahedron(eye(3)*5)

введите здесь описание изображения

person Yola    schedule 25.06.2017