在 MATLAB 中使填充形状移动

2023-12-14

我有以下用于在 matlab 中绘制填充矩形和圆形形状的语句。 我必须为这些语句添加的内容只是为了在起点和目标点之间制作形状而不会发生碰撞。

fill([9.5 9.5 11.5 11.5 ],[12.6 14.6 14.6 12.6],'r');  %rectangler shape
hold on
r=1; 
color=[1 0 0]; 
t=linspace(0,2*pi);
fill(15+r*cos(t),8+r*sin(t),color); %circle shape
grid on

以矩形为例。诀窍是逐渐修改对象属性,在本例中是它的'Vertices'

origin_x = [9.5 9.5 11.5 11.5 ]; %// initial coordinates of vertices
origin_y = [12.6 14.6 14.6 12.6];
destination_x = origin_x + 3; %// final coordinates of vertices
destination_y = origin_y + 2;
n_steps = 100; %// number of "frames"
t_pause = .03; %// seconds between frames

h = fill(origin_x, origin_y, 'r'); %// create object at initial position
axis([8 16 10 18]) %// adjust as needed, to cover the desired area
axis equal %// same scale in both axes
axis manual %// prevent axes from auto-scaling
for t = linspace(0,1,n_steps)
    x = (1-t)*origin_x + t*destination_x; %// update x
    y = (1-t)*origin_y + t*destination_y; %// update y
    set(h, 'Vertices', [x(:) y(:)]) %// change object's position
    pause(t_pause) %// a pause is needed to make movement slower
    drawnow %// probably not needed after pause. Just in case
end

enter image description here


以矩形和圆形为例。方法类似:创建两个对象并更新它们'Vertices'内的财产for loop.

%// Define rectangle values
origin_x1 = [9.5 9.5 11.5 11.5 ];
origin_y1 = [12.6 14.6 14.6 12.6];
destination_x1 = origin_x1 + 3;
destination_y1 = origin_y1 + 2;

%// Define circle values
r = 1;
v = linspace(0,2*pi);
origin_x2 = 15+r*cos(v);
origin_y2 = 10+r*sin(v);
destination_x2 = origin_x2 - 1;
destination_y2 = origin_y2 + 3;

%// Define movement speed
n_steps = 100;
t_pause = .03;

%// Create objects
h1 = fill(origin_x1, origin_y1, 'r');
hold on
h2 = fill(origin_x2, origin_y2, 'b');

axis([8 16 10 18])
axis equal
axis manual

%// Update properties
for t = linspace(0,1,n_steps)
    x1 = (1-t)*origin_x1 + t*destination_x1;
    y1 = (1-t)*origin_y1 + t*destination_y1;
    set(h1, 'Vertices', [x1(:) y1(:)])

    x2 = (1-t)*origin_x2 + t*destination_x2;
    y2 = (1-t)*origin_y2 + t*destination_y2;
    set(h2, 'Vertices', [x2(:) y2(:)])

    pause(t_pause)
    drawnow
end

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 MATLAB 中使填充形状移动 的相关文章

  • 如何在 MATLAB 的 for 循环中读取多个图像?

    我已将结果分段放在一个文件夹中 这些需要在 for 循环中读取并在循环中进一步处理 我尝试阅读如下 for i 1 10 file name dir strcat C Users adminp Desktop dinosaurs im im
  • Matlab 中的多行匿名函数? [复制]

    这个问题在这里已经有答案了 是否可以在 Matlab 中创建多行匿名函数 没有合适的例子在文档中 http www mathworks com help matlab matlab prog anonymous functions html
  • ODE 时间 Matlab 与 R

    如果在 matlab 中使用可变时间步长求解器 例如 ODE45 我会定义输出的时间跨度 即times 0 50 matlab 将返回 0 到 50 之间不同时间步长的结果 然而在 R 中 我似乎必须定义我希望 ODE 返回结果的时间点 即
  • Matlab-如何在曲线上绘制切线

    我在 matlab 中绘制了一个图表 plot x y 我的图表有不同的斜率 我如何在每个斜率上绘制切线并计算斜率的系数 如果您没有用于绘制点的显式函数 您可以使用有限差分 http en wikipedia org wiki Finite
  • 继续在 Matlab 中一遍又一遍地播放声音?

    我正在尝试创建一个 MATLAB 程序来每隔几分钟一遍又一遍地播放声音 现在我将其设置为每隔几秒播放一次 只是为了消除系统中的一些错误 但是 当我的程序尝试重播声音时 我收到此错误 Error using gt audioplayer au
  • 在 3d 空间中的两个平面之间进行插值

    我正在开发一种工具 可以让您在 3D 体积 上圈出 包围事物 我想通过标记 切片 1 和 3 并从该信息 填充 切片 2 来节省时间 两个简单的解决方案是 1 slice2 slice1 AND slice3 gets the overla
  • 使用 GPU 进行 Matlab 卷积

    我用gpuArray尝试了matlab的卷积函数conv2 convn 例如 convn gpuArray rand 100 100 10 single gpuArray rand 5 single 并将其与 cpu 版本 convn ra
  • 如何让MCR启动时间快

    我将 matlab 程序转换为 net 程序集 即 dll 文件 我制作了一个控制台 C 应用程序 添加了 dll 文件并从 php 调用它 每次调用 exe 时都会调用 MCR 如何使 MCR 在服务器启动时初始化 并且即使在一段时间后调
  • Matlab:如何显示数组的“真实”值?

    我有一个在脚本中计算的向量 计算后 我将值显示到命令窗口 显示如下 finalResults 1 0e 05 0 0001 0 0 0005 0 0002 0 0001 0 0027 0 0033 0 0001 0 0000 0 0000
  • Matlab PARFOR 循环可以通过编程方式打开/关闭吗?

    有一个关于 MATLAB 中 parfor 的简单问题 我想在程序中设置一个标志 以便在 parfor 和常规 for 循环之间进行更改 基本上 我需要此功能 以便我的代码的某些部分可以在 调试 模式下更新图形 然后当关闭该标志时 使用 p
  • 按元素出现的频率对数组元素进行排序

    是否可以在 matlab octave 中使用sort函数根据元素的相对频率对数组进行排序 例如数组 m 4 4 4 10 10 10 4 4 5 应该产生这个数组 5 10 10 10 4 4 4 4 4 5是出现频率较低的元素 位于顶部
  • Matlab - 如果值包含xxx,则删除元胞数组中的行

    在 Matlab 中 如何删除包含变量字符串的元胞数组中的元胞 假设我的元胞数组是 C svnTrunk RadarLib radarlb utilities scatteredInterpolant m C svnTrunk RadarL
  • MATLAB - 如何将子图一起缩放?

    我在一张图中有多个子图 每个图的 X 轴是相同的变量 时间 每个图上的 Y 轴都不同 无论是它所代表的内容还是数据的大小 我想要一种同时放大所有图的时间尺度的方法 理想情况下 可以在其中一张图上使用矩形缩放工具 并让其他图相应地更改其 X
  • Matlab 字段名索引[重复]

    这个问题在这里已经有答案了 所以我有一个包含多个表的元胞数组 我试图访问表的第一个列名称 c table1 table2 table3 以下两行都给了我错误 fieldnames c 1 1 fieldnames c 1 1 Error i
  • 什么是 ANN 中的纪元以及它如何转换为 MATLAB 中的代码?

    我试图理解 并可视化 训练人工神经网络的时代到底是什么 我们有一个包含约 7000 个产品的训练集 其中有 10 个特征 输入 这些产品必须根据这 10 个输入分为 7 个类别 我们的 ANN 有 10 个输入 这些输入进入由 10 个神经
  • 使用 MATLAB 进行线路跟踪

    我有一个图像 我想将其转换为逻辑图像 包括线条为黑色 背景为白色 当然 可以使用阈值方法来实现这一点 但我不想使用这种方式来做到这一点 我想通过使用线路跟踪方法或类似的方法来检测它 这是关于视网膜血管检测的 我找到了一个article ht
  • MATLAB 特征函数

    我很好奇哪里可以找到完整的描述FEATURE功能 它接受哪些论点 没有找到文档 我只听说过memstats and getpid 还要别的吗 gt gt which feature built in undocumented 注意 更完整的
  • 我需要转义该 MATLAB 字符串中的字符吗?

    我想在 MATLAB 中调用以下 bash 命令 grep Up to test linux vision1 1 log awk print 7 I use system 在MATLAB中 但结果有错误 gt gt status strin
  • matlab中类库的全局变量

    我有一些matlab声明的类 我如何声明所有类中都可见的常量 例如 这些常量可以是在所有类的方法中使用的物理常量 首先想到的是使用全局变量 还有更好的办法吗 最好在单独的文件中声明这些常量 包含常量的类是执行此操作的一种很好的干净方法 请参
  • 如何在 MATLAB 中绘制 3D 曲面图?

    我有一个像这样的数据集 0 1 0 2 0 3 0 4 1 10 11 12 13 2 11 12 13 14 3 12 13 14 15 4 13 14 15 16 我想在 matlab 中绘制 3D 曲面图 使列标题位于 y 轴 行标题

随机推荐

  • 如何从ContentView获取ContentPage的BindingContext?

    我有以下 Contentpage content 我在其中设置了某些绑定上下文
  • 影响测量或影响排列

    我正在创建自定义控件 如果依赖项属性之一发生更改 我需要更新布局 我可以使用FrameworkMetadataProperty AffectsMeasure or FrameworkMetadataProperty AffectsArran
  • C++ 如何将输入值分配给 std::bitset 参数?

    我想制作一个简单的程序 它将从输入中获取位数并作为输出显示二进制数 写在给定的位上 例如 我输入 3 它显示 000 001 010 011 100 101 110 111 我遇到的唯一问题是第二个for 循环 当我尝试分配变量时位集bit
  • ios开发如何解析xml

    所以我知道如何解析一些 XML 结构 但我目前正在尝试解析这个特定的 xml 结构 这与我习惯的有点不同 通常我会解析类似的东西
  • 循环“接口”依赖关系和温莎堡

    我有组件 public interface IFoo public interface IBar public class Foo IFoo public IBar Bar get set public class Bar IBar pub
  • 在cucumber-junit中动态传递cucumber选项?

    我明白那个 CucumberOptions用于传递 Cucumber 选项 但由于Java注解只允许内联常量的限制 使用起来相当麻烦 CucumberOptions 那么 使用 cucumber junit 时是否有一种动态方式来传递 Cu
  • 在 Fedora 16 上安装 X11

    我希望安装 X11 开发库 我的操作系统是 Fedora 16 我发现这个链接提供了 X11R7 6 的源代码 http www x org releases X11R7 6 src 你能告诉我接下来的几个步骤吗 提前致谢 无需自己下载标头
  • 如何在 Perl 程序中将行换行至 45 个字符?

    我正在 Perl CGI 程序中编写以下文本 text message lines split n text lCnt lines 1 lineStart 80 lineHeight 24 我想在 45 个字符后强制返回 我在这里该怎么做
  • RemoteViewFactory onDataSetChanged() 每个notifyAppWidgetViewDataChanged() 仅调用一次[重复]

    这个问题在这里已经有答案了 我正在构建一个小部件来加载每个食谱的成分列表 我的目标是能够拥有该小部件的多个实例 并独立加载 更新它们的成分列表 ListView 我已经设置了一个配置活动供用户选择菜谱 配置并填充远程视图并为我的配料列表创建
  • 使用 SharePoint spfx、React 和 Get 组件与模板的 Graph Toolkit 工作示例

    我正在尝试在我的 SharePoint spfx Web 部件解决方案中使用 Microsoft Graph Toolkit 更具体地说是 React 版本 microsoft mgt react 我已成功导入包 并正确呈现控件 不过 我现
  • 如何在 C 中以可移植的方式管理内存对齐和通用指针算术?

    我必须实现 malloc realloc free 的优化版本 针对我的特定应用程序量身定制 目前代码在特定平台上运行 但如果可能的话 我想以可移植的方式编写它 平台将来可能会改变 或者至少我想将可能的平台差异集中在一个单一的平台上 点 可
  • 使用多个条件过滤 EAV 表

    我有 2 张桌子 Table objects object id object group id Table attributes attr id attr object id attr property id attr value 现在
  • 在 Angular 2 中重新渲染数据表 - dtInstance.then 错误

    我的 Angular 2 应用程序中有一个组件 它有一个下拉列表和一个数据表 根据从下拉列表中选择的名称 我想在数据表中显示详细信息 HTML div div
  • 异步和等待:多个等待表达式

    我在理解如何使用 async 和 wait 工作时遇到了一些困难 据我所知 当异步方法命中等待表达式时 该方法立即返回 并且在将来的某个时刻等待表达式返回并且该方法继续执行 那么 我不明白的是 当异步方法包含多个等待表达式时会发生什么 当执
  • 使用 model.matrix 进行 One-hot 编码

    model matrix 中有一些我不明白的东西 当我输入一个没有截距的二进制变量时 它返回两个级别 gt temp data lt data frame x sample c A B 1000 replace TRUE gt temp d
  • Xamarin Forms - 选项卡式视图?

    我需要创建一个弹出窗口 其中会有一些选项卡 每个选项卡都包含一个列表视图 我知道有一个 TabbedPage 但我需要一个 TabbedView 以便我可以使用 Xlabs PopupLayout 构建我的弹出窗口 如何在 Xamarin
  • 从私人 CKAN 数据集中下载资源

    我的目标是使用 a CKAN API 或 b CKANAPI CLI 或 c 粘贴器 如果 c 是可能的 下载私有数据集中作为资源保存的文件 我尝试使用 a 下载文件 但未成功 例如使用资源 URL 和urllib2 or requests
  • 获取特定数据的正则表达式

    我有一个可以作为文本框读取的文件 我只想获取之后可用的数据 开始 n 和结束 n
  • 在全屏模式下观看 HTML5 视频时如何捕获键盘事件?

    我需要知道用户在全屏模式下观看 HTML5 视频时何时按下退出键 不幸的是 文档上配置的任何侦听器都不适用 因为当用户以全屏模式观看 HTML5 视频时 系统焦点位于本机视频播放器而不是浏览器上 另一种方法是监听焦点何时从本机视频播放器恢复
  • 在 MATLAB 中使填充形状移动

    我有以下用于在 matlab 中绘制填充矩形和圆形形状的语句 我必须为这些语句添加的内容只是为了在起点和目标点之间制作形状而不会发生碰撞 fill 9 5 9 5 11 5 11 5 12 6 14 6 14 6 12 6 r rectan