试图把我的头围绕如何做一些简单的绘图在egui。我在myapp结构中有一个数据成员,它是Vec::
是否有一种方法可以将其传递到Points::new(Values::from_values(data.to_vec())而无需创建值的副本?示例通常是动态生成的,但从磁盘读取并解析每帧的文本数据感觉有点过度。
struct MyApp {
data: Vec<Value>,
}
myplot.show(ui, |plot_ui| {
let points = Points::new(Values::from_values(data.to_vec()));
plot_ui.points(points);
但是从磁盘读取并解析每帧的文本数据感觉有点过分。
你不必(也不应该)每一帧都这样做。解析它一次,并将结果存储在一个持久结构中,并在show
闭包期间从那里复制。
也就是说,看起来你需要每帧创建一个新的Points
对象,因为plot_ui.points
按值取点对象。您现在所使用的方法—存储一个Vec<Value>
并每帧克隆它—可能是您将要得到的最好的方法。