matlab实现在画图的图窗里播放点数据的循环

数据准备

  我准备好了打包的数据文件供演示下载,只需要小白式的操作。传送门
文件里集成了处理好的点云文件,如果你想显示曲线,只需要把你的数据批量更换上去即可。
在这里插入图片描述
在这里插入图片描述
  每一个里面包含了以下信息:

  • location:不同点的x,y,z三个坐标;
  • count:表示每一帧数据里面总共有多少个点;
  • color:所有点的颜色默认,便于我们对特殊点特殊显示;
  • XYZlimits:点出现的边界,便于我们对显示点画框;
      于是我们先初始化一个图框,然后更改图框的显示内容,即可实现动态图框显示
load('.\new_data_point.mat');
pc = pcloud(1).ptCloud
xBound = 40;
yBound = 20;
xlimits = [-xBound, xBound];
ylimits = [-yBound, yBound];
zlimits = pc.ZLimits; 
player = pcplayer(xlimits, ylimits, zlimits);
colors = [0 0 1; ...  %蓝色
          0 1 0; ...  % 绿色
          1 0 0; ...  % 红色
          0 0 0];     % 黑色
 
blueIdx  = colors(1,:); %蓝色
greenIdx = colors(2,:);
redIdx   = colors(3,:);
blackIdx = colors(4,:);

  初始化后的显示如图所示:
在这里插入图片描述
  接下来循环显示点:
  解释一下 前面是对特殊点颜色标签的定义,然后通过自带的view函数画在图框里,在循环结束的时候对k重新赋值。

k=1;
while k>0
%     k = 1:length(pcloud)    
    pc = pcloud(k).ptCloud;
    colorLabels = zeros(pc.Count, 3, 'single'); % 创造标签阵列
    [h,l]=size(pc.Location);
    for num=1:h
        if co(num,k)==1
           colorLabels(num,:)=blueIdx;
        elseif co(num,k)==2
           colorLabels(num,:)=redIdx;
        else 
           colorLabels(num,:)=greenIdx;
        end
    end
    for num=1:h
        if pc.Location(num,3)<2.2
           colorLabels(num,:)=greenIdx;
        end
    end
    view(player, pc.Location, colorLabels);
    k=k+1;
    if k==length(pcloud)
        k=1;
    end
end

  最终呈现的效果如下:
  是可以拖动的,这是我为什么要选择在图窗里画图的原因,可以很3维的显示效果!

雷达识别

编写不易,求个点赞!!!!!!!
“你是谁?”

“一个看帖子的人。”

“看帖子不点赞啊?”

“你点赞吗?”

“当然点了。”

“我也会点。”

“谁会把经验写在帖子里。”

“写在帖子里的那能叫经验贴?”

“上流!”
cheer!!!

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大不怪将军

如果帮助到你,我很开心

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值