放置一个滑块控件在冲浪情节?

8次浏览(过去30天)
卡兰Gundre
卡兰Gundre 2021年9月22日
评论道: 卡兰Gundre2021年9月22日
有一种方法来实现一个滑块类型的控件为3D冲浪情节?我研究了uicontrol,但它显然只适用于用数字创建的情节。
有不同的实现方式吗?控件不一定是滑块;我想让用户能够输入20Hz-20kHz范围内的频率值,然后通过一段代码对该值进行计算并相应地更新冲浪图。
下面是我想要放置滑块的示例代码。尝试使用uicontrol会给我一个错误:surface不能是父对象。
绘制一个球体,其半径根据绘图上的滑块位置而变化
定义为球坐标
Theta = linspace(-,pi,73);
Theta = repmat(Theta,37,1);
Theta (:,1) = -1 * Theta (:,1);不是必须的,但它将最后一组点与第一个点连接起来,以提供一个光滑的表面
= linspace(- /2, /2,37)';
= repmat(Phi,1,73);
R = user_input*ones(size(theta));% user_input来自改变绘制球体半径的滑块
[x,y,z] = sph2cart(theta,phi,r);
冲浪(x, y, z)

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2021年9月22日
您正在使用surf(),并且没有将一个轴句柄传递给surf()。
在这个组合中,surf()将使用gca()来查找当前的轴,而gca()将使用gcf(),后者将查找当前的“传统”图形(或根据需要创建一个)。Gcf()将永远不会尝试查找“当前”uifigfigure ()
因此,按照您的编程方式,surf()将始终以传统图形()显示。因此,您所担心的uicontrol只处理用figure()创建的图形,结果不是问题:您 将使用figure()创建的图形
如果你已经将所有这些都编程到ufigure()中,那么你将使用uislider()而不是uicontrol()
5个评论
卡兰Gundre
卡兰Gundre 2021年9月22日
我认为它需要更多的工作。我知道去哪里找这些东西。谢谢你的帮助!你在其他几个帖子上的回答在过去极大地帮助了我。也谢谢你所做的一切。MVP。祝你玩得愉快!

登录评论。

更多答案(0)

下载188bet金宝搏


释放

R2020b

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!