Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Graphics 一个类的动态数组,在另一个单独的类中?_Graphics_Matlab - Fatal编程技术网

Graphics 一个类的动态数组,在另一个单独的类中?

Graphics 一个类的动态数组,在另一个单独的类中?,graphics,matlab,Graphics,Matlab,我正在做一个机器人定位模拟器,我创建了一个叫做“landmark”的类 最终的结果将是一个始终居中、始终面向屏幕顶部的机器人。转动时,鸟瞰图将围绕机器人旋转。为了实现这一点,我假设我可以旋转一个类,并让其中的所有元素也旋转 因此,landmark类具有属性x、y、label和radius。假设这是为了模拟森林中的树位置 为了测试一切,我需要“森林数据”,我编写了一个脚本,在100mx100m的区域内生成100棵树。脚本会自动生成x、y和半径在可接受范围内的值。生成的数据存储在一个名为tempFo

我正在做一个机器人定位模拟器,我创建了一个叫做“landmark”的类

最终的结果将是一个始终居中、始终面向屏幕顶部的机器人。转动时,鸟瞰图将围绕机器人旋转。为了实现这一点,我假设我可以旋转一个类,并让其中的所有元素也旋转

因此,landmark类具有属性x、y、label和radius。假设这是为了模拟森林中的树位置

为了测试一切,我需要“森林数据”,我编写了一个脚本,在100mx100m的区域内生成100棵树。脚本会自动生成x、y和半径在可接受范围内的值。生成的数据存储在一个名为tempForest的对象中,数据大小为100x3

理想情况下,我想创建一个名为“landmarks”(复数)的类,其中包含100个landmark实例

如何使用随机生成的数据在一个landmarks实例中实例化100个landmark实例

理想情况下,我只需键入treeBeacons=landmarks();它将随机使用x、y、radius数据填充100个(用户可定义,在配置文件中设置)实例

我不知道如何处理另一个类“landmarks”中类“landmarks”的动态数组


有什么想法吗?

我会创建一个类“landmarks”,它有一个属性“fixedPositions”、一个属性“viewDirection”和一个从属属性“apparentPositions”

如果键入
treeBeacons=landmarks,您可以让构造函数填写
fixedPositions
,这是树的位置列表。然后将
treeBeacons.facing
设置为机器人所面对的任何方向,您可以将相对于机器人的森林设置为
treeBeacons.appearthPositions

根据你的描述,我认为没有必要让你的树成为物体。但是,如果您的树确实需要是单个对象,您可以使用地标的构造函数来创建对象而不是坐标,并将它们存储在
固定位置(或
)中。我建议您不要同时使用
landmarks
landmark
作为不同的变量名。至少像我这样的普通人很难区分两者

classdef landmarks
    properties
        fixedPositions %# positions in a fixed coordinate system. [ x, y, radius ]
        facing = 0;%# direction in which the robot is facing
    end
    properties (Dependent)
        apparentPositions
    end
    methods
        function obj = landmarks(numberOfTrees)
             %# set  obj.fixedPositions here depending on the number of trees. 
        end
        function out = get.apparentPositions(obj)
            %# rotate obj.positions using obj.facing to generate the output
        end
        function plotMap(obj,fixedOrApparent)
            %# plots the map, either using fixed or apparent coordinates (good for testing)
        end
    end
end

那么树生成器的100x3输出就是固定位置?如果航向改变,表观位置会改变吗?我想我会在明显的位置添加一个事件侦听器,当我更改标题时将其触发?@pinnacler:是的,fixedPositions是树生成器的输出。由于apparentPositions是一个依赖函数,因此只要使用“facing”的最新值请求它,它就会重新生成,因此,不需要使用事件。