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