[已解决] 如何把matlab gui中绘制的图形显示在坐标轴AXes中

[复制链接]
罗雪航 发表于 2021-6-7 16:53:17
有什么命令可以把弹出的图窗内容直接显示在坐标轴区域吗

figure('Visible','on','Position',[360,500,450,285]);
hold on
for n = 1:length(facetN)
    fill3(vertex(3*n-2:3*n,1),vertex(3*n-2:3*n,2),vertex(3*n-2:3*n,3),'y',...
       'EdgeAlpha',0.5)
end
axis equal
box on
rotate3d on

图片1.png

最佳答案


一天人水 发表于 2021-6-8 17:20:41
罗雪航 发表于 2021-6-8 17:00
我这个模型由很多三角形来显示几何形状的,不用hold on就是几百个显示三角形的图窗,用了你的方法,只在 ...
  1. fill3(ax,...);
  2. hold(ax, 'on');
复制代码

6 条回复


一天人水 发表于 2021-6-8 10:55:19
不要用figure,figure是新建一个绘图窗口。
用axes(handles.axesSelf);
axesSelf是你右下角的axes控件tag名。

罗雪航 发表于 2021-6-8 12:52:26
一天人水 发表于 2021-6-8 10:55
不要用figure,figure是新建一个绘图窗口。
用axes(handles.axesSelf);
axesSelf是你右下角的axes控件tag名 ...

请问在APP Desinger中要怎么操作呢,handle命令好像被取消了,axes(APP.UIAxes)又显示有语法问题

一天人水 发表于 2021-6-8 13:53:14
本帖最后由 一天人水 于 2021-6-8 13:55 编辑

额,你标题写的GUI。。。
APPDesigner的话,在startupFcn下添加。fill3函数和普通绘图函数类似。
  1. ax = app.UIAxes;
  2. X = [0 1 1 2; 1 1 2 2; 0 0 1 1];
  3. Y = [1 1 1 1; 1 0 1 0; 0 0 0 0];
  4. Z = [1 1 1 1; 1 0 1 0; 0 0 0 0];
  5. C = [0.5000 1.0000 1.0000 0.5000;
  6.     1.0000 0.5000 0.5000 0.1667;
  7.     0.3330 0.3330 0.5000 0.5000];

  8. fill3(ax,X,Y,Z,C)
复制代码

罗雪航 发表于 2021-6-8 17:00:07
一天人水 发表于 2021-6-8 13:53
额,你标题写的GUI。。。
APPDesigner的话,在startupFcn下添加。fill3函数和普通绘图函数类似。
...

我这个模型由很多三角形来显示几何形状的,不用hold on就是几百个显示三角形的图窗,用了你的方法,只在坐标区显示了一个三角形,有没有什么解决方法呢,谢谢大佬!

figure
for n = 1:length(facetN)
       hold on
      fill3(app.UIAxes,vertex(3*n-2:3*n,1),vertex(3*n-2:3*n,2),vertex(3*n-2:3*n,3),'y',...
       'EdgeAlpha',0.5)
  end
axis equal
box on
1.png

一天人水 发表于 2021-6-8 17:20:41
罗雪航 发表于 2021-6-8 17:00
我这个模型由很多三角形来显示几何形状的,不用hold on就是几百个显示三角形的图窗,用了你的方法,只在 ...
  1. fill3(ax,...);
  2. hold(ax, 'on');
复制代码
回复此楼

罗雪航 发表于 2021-6-8 20:41:24

谢谢大佬,成功了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表