改变颜色的结构定义为对象

7视图(30天)
多维数据集=平台(sc);
多维数据集。尺寸=结构(“长度”5“宽度”,5,“身高”,5,“OriginOffset”, [0 0 0]);
我创建了一个对象称为多维数据集,用指定的维度,并绘制在旋转,我需要改变颜色的面孔识别旋转。
谢谢
1评论
沃尔特·罗伯森
沃尔特·罗伯森 2021年3月23日
这似乎是指传感器融合
你用plotPlatform () ?我还没有找到一个plotPlatform()方法绘制的脸,唯一的标记。

登录置评。

接受的答案

格雷格·迪翁
格雷格·迪翁 2021年3月24日
编辑:格雷格·迪翁 2021年3月24日
platformPlotter 是为了情节(可能有多个)对象用一个独特的颜色。
orientationPlotter 适用于策划的方向(可能有多个)对象使用红、绿、蓝色标签公约身体的方向的x - y, z轴,分别。快速绘图的例子只有一个方向集中在原点,尝试运行:
%的例子:动画平滑插值旋转
从-30度偏航%,20度,10度
% 60度偏航,10度音高和5度。
% - - - - - - -
%的端点创建旋转。
函数e = [-30 20 10;60 10 5]);
%端点转换为一个四元数。
q =四元数(e,“欧拉”,“ZYX股票”,“帧”);
% upsample以100分通过球形线性插值
q = slerp (q q (1), (2), linspace (0, 1100) ');
%创建一个戏剧情节
tp = theaterPlot (“XLimit”(2 - 2),“YLimit”(2 - 2),“ZLimit”(2 - 2));
%添加一个方向绘图仪的戏剧情节
op = orientationPlotter (tp,“DisplayName的”,“身体轴”);
%动画旋转的变化
i = 1:元素个数(qs)
plotOrientation (op, qs (i));
drawnow;
结束
您可以将身体的起源轴(用黑点)通过可选的第三个参数 plotOrientation 方法。可能更容易看到方向绘制多个对象时(因为它们可能只占据几个像素每个当你看几个对象,从彼此相距很远。
策划者应该工作的很好与其他典型处理图形命令需要细的粒度控制。您可以获得现有theaterPlot使用的轴通过其“父”属性。否则就像平时一样创建一个轴(通过 )。我将结合使用 hgtransform , makehgtform , 补丁 达到你的预期效果。如果你想看到所有这些操作的同时你可以做一些类似:
sc = trackingScenario;
多维数据集=平台(sc);
多维数据集。尺寸=结构(“长度”5,“宽度”5,“高度”5,“OriginOffset”,0 0 0);
%创建一个戏剧情节
tp = theaterPlot (“XLimit”-10年[10],“YLimit”-10年[10],“ZLimit”,-10年[10]);
%添加一个方向绘图仪的戏剧情节
op = orientationPlotter (tp,“DisplayName的”,“身体轴”);
%发现每张脸的坐标
L = cube.Dimensions.Length;
W = cube.Dimensions.Width;
H = cube.Dimensions.Height;
抵消= cube.Dimensions.OriginOffset;
%顶点下令逆时针从外部观察到的
%向前,向后,向左,
f = [1 1 1;1 1 1;1 1 1;1 1 1]。* (L W H) / 2 -抵消;
r = [1 1 1;1 1 1;1 1 1 1 1 1]。* (L W H) / 2 -抵消;
d = [1 1 1; 1 1 1; 1 1 1;1 1 1]。* (L W H) / 2 -抵消;
b = [1 1 1; 1 1 1; 1 1 1; 1 1 1]。* (L W H) / 2 -抵消;
l = [1 1 1; 1 1 1;1 1 1;1 1 1]。* (L W H) / 2 -抵消;
u = [1 1 1;1 1 1;1 1 1 1 1 1]。* (L W H) / 2 -抵消;
%创建一个变换对象,使补丁
hTransform = hgtransform (tp.Parent);
补丁(hTransform f (: 1), f (:, 2), f (:, 3),“红色”,“FaceAlpha”6);
补丁(hTransform左(:1),l (:, 2), l (:, 3),“黄色”,“FaceAlpha”6);
补丁(hTransform u (: 1), u (:, 2), u (:, 3),“青色”,“FaceAlpha”6);
补丁(hTransform, b (: 1), b (:, 2), b (:, 3),“红色”,“FaceAlpha”6);
补丁(hTransform r (: 1)、r (:, 2), r (:, 3),“绿色”,“FaceAlpha”6);
补丁(hTransform d (: 1)、d (:, 2)、d (:, 3),“蓝”,“FaceAlpha”6);
%的端点创建旋转。
函数e = [-30 20 10;60 10 5]);
%端点转换为一个四元数。
q =四元数(e,“欧拉”,“ZYX股票”,“帧”);
% upsample以100分通过球形线性插值
q = slerp (q q (1), (2), linspace (0, 1100) ');
%动画旋转的变化
i = 1:元素个数(qs)
位置= (0 0 0);
plotOrientation (op、qs (i)、位置);
% hgtransform使用“点”的惯例
M =眼睛(4);
米(1:3,1:3)= rotmat (qs(我),“点”);
hTransform。矩阵= makehgtform (“翻译”、位置)* M;
drawnow;
结束
你可以尝试不同的值“位置”。
希望这可以帮助!
1评论
用户运算器
用户运算器 2021年3月24日
非常感谢,非常有帮助。
我很欣赏你的努力和你解释一个美妙的方式。

登录置评。

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!