【问题标题】:Shadow in 3d plot Matlab3d 绘图中的阴影 Matlab
【发布时间】:2021-10-27 14:35:12
【问题描述】:

我想将轨迹的阴影/反射添加到我的 3d 图的每一侧 (2D 透视投影),如下图所示:

a = 1.;
b = 0.3;  
c = 0.3;

b1 = 0.008;
b2 = 0.008;
b3 = 0.002;

c1 = 0.004;
c2 = 0.0045;

eta = [50 20 20];
F = @(t,y) [a*y(1) - b1*y(1)*y(2)-b2*y(1)*y(3)- b3* y(1)*y(1) ; -b*y(2) + c1*y(1)*y(2); -c*y(3) + c2*y(1)*y(3)];
[t,y] = ode45(F,[0: (300/1000000): 300], eta);
plot3(y(:,1),y(:,2),y(:,3), 'color', 'blue','LineWidth',2)
grid on;

【问题讨论】:

    标签: matlab 3d shadow


    【解决方案1】:

    我想最简单的方法是在轴的平面上绘制线。例如,在您给定的示例中(我假设 a = 0.3 因为您没有指定 aplot3 产生这个数字:

    这是您要添加的内容:

    hold on
    plot3(0*y(:,1),y(:,2),y(:,3), 'color', 'k','LineWidth',1); % shadow on the Y-Z plane
    plot3(y(:,1),0*y(:,2),y(:,3), 'color', 'k','LineWidth',1); % shadow on the X-Z plane
    plot3(y(:,1),y(:,2),0*y(:,3), 'color', 'k','LineWidth',1); % shadow on the X-Y plane
    

    生成如下图:

    仅供参考,您还可以使用 imagesc 为表面生成阴影,例如 in this page 示例,它基本上在轴上添加了 3D 表面的 2D 图像。

    【讨论】:

    • 非常感谢。 a=1。但是当我添加这三行时,我只能看到最后一个图,而看不到所有四个图。我做错了吗?
    • @MathMath “等一下”?
    • 是的,正如@wwweagle 提到的,我忘记添加“等等”。它现在已添加到答案中
    猜你喜欢
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    • 2014-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-13
    • 1970-01-01
    相关资源
    最近更新 更多