我正在尝试创建一个测量系统,可以使用 LiveCharts 测量 Y 轴上的值和 X 轴上的时间。
我使用Constant Changes作为基础来创建我的图表,但我希望我的 X 轴从 0 秒开始,而不是像示例中那样从当前时间开始。我已经尝试过如何使用 Livecharts 使 x 轴从 0 开始并有 2 秒的步长,而不是盯着程序启动的第二秒?但我无法让它与我的程序一起工作。我想做他们在上面链接的线程中做的同样的事情,但无法让它工作。
代码隐藏:
public void init()
{
var mapper = Mappers.Xy<ValueRandomizerForTest>().X(model =>
model.DateTime.Ticks).Y(model => model.Valuefordate);
Charting.For<ValueRandomizerForTest>(mapper);
ChartValues = new ChartValues<ValueRandomizerForTest>();
DateTimeFormatter = value => new
DateTime((long)value).ToString("ss");
AxisStep = TimeSpan.FromSeconds(1).Ticks;
AxisUnit = TimeSpan.TicksPerSecond;
SetAxisLimits(DateTime.Now);
}
public void read()
{
var r = new Random();
while (isreading)
{
Thread.Sleep(550);
var now = DateTime.Now;
var test = now.Second;
_trend = r.Next(1, 100);
if(ChartValues.Count == 0)
{
}
ChartValues.Add(new ValueRandomizerForTest
{
DateTime = now,
Valuefordate = _trend
});
SetAxisLimits(now);
//lets only use the last 150 values
if (ChartValues.Count > 150)
{
ChartValues.RemoveAt(0);
}
}
}
public void SetAxisLimits(DateTime now)
{
AxisMax = now.Ticks + TimeSpan.FromSeconds(1).Ticks; //Axis is moving 1 second ahead
AxisMin = now.Ticks - TimeSpan.FromSeconds(5).Ticks;
}
吃鸡游戏
相关分类