在MATLAB中为2d网格的变形设置动画

时间:2017-08-01 10:45:15

标签: c++ matlab nodes mesh

我使用C ++创建了一个网格,它由在水平和垂直方向上由具有相应刚度的弹簧连接的节点组成。

我已经移动了网格顶部的节点,并求解了所得到的方程组,以找到新的节点位置。非应变网格中的节点坐标以及应变网格已导出到MATLAB中。

以下显示由' *'绘制的非应变点。以及由' o绘制的应变点。我想要的是显示弹簧(即将节点连接到它们的邻居的水平和垂直线),还可以设置从非应变配置到应变配置的变化动画。

有没有人知道我会怎么做?在这个阶段,任何建议都会很好。我希望我已经很好地解释了这个问题。

unstrained = blue '*', strained = red 'o'先谢谢。

修改

到目前为止,我有这个

% Number of nodes in each direction
nx = 3;
ny = 4;

figure;

% Unstrained mesh
subplot(1,2,1)

plot(x0,y0,'ro'), xlim([-1,3]), ylim([-1, 6])

% Draw the horizontal springs
for i = 1 : 12
    if mod(i,nx) == 1 || mod(i,nx) == 2
        line([x0(i),x0(i+1)], [y0(i), y0(i+1)])
    end
end
% Draw the vertical springs
for i = 1 : nx*ny - nx
    line([x0(i),x0(i+nx)], [y0(i), y0(i+nx)], 'Color', 'Black')

end

% Strained mesh
subplot(1,2,2)

plot(x1,y1,'ro'), xlim([-1,3]), ylim([-1, 6])

% Draw the horizontal springs
for i = 1 : nx*ny
    if mod(i,nx) == 1 || mod(i,nx) == 2
        line([x1(i),x1(i+1)], [y1(i), y1(i+1)])
    end
end
% Draw the vertical springs
for i=1:nx*ny
    line([x1(i),x1(i+nx)], [y1(i), y1(i+nx)], 'Color', 'Black')

end

enter image description here 我希望制作一个动画,显示左边的子图变形到右边的子图。点(节点位置)分别存储在非应变和应变网格的x0,y0和x1,y1向量中。

希望这有帮助。

0 个答案:

没有答案