Я создал систему координат на полотне Элемент. Я рисую для каждой полученной ценности красную точку и соединяю ее со старой.Координата WPF Обновление системы
Смотрите здесь:
Я получаю каждую секунду около 10 значений.
1 значение = 1 пиксель
Красная линия представляет значения, я получаю постоянное значение только для тестирования.
Моя цель - обновить чертеж, когда он достигнет конца моей системы координат. Я хочу нажать на мой рисунок слева и нарисовать следующие точки.
Моя цель:
- Я не хочу потерять очки в моем графике, потому что позже я хочу, чтобы увеличивать и уменьшать масштаб
- Я не хочу замедлить свою систему как можно меньше ...
Это мой код, но не знаю, как я могу обновить график в финальной части ....
static double xOld = 32;
static double yOld = 580;
static double t = 32;
System.Windows.Shapes.Path path;
static GeometryGroup lineGroupDrw1 = new GeometryGroup();
....
public void drawPoly(double value)
{
//increase point position
t++;
//generate 2 point for the connection
Point pOne = new Point(xOld, yOld);
Point pTwo = new Point(t, value);
//connect old point with new
GeometryGroup lineGroup = new GeometryGroup();
LineGeometry connectorGeometry = new LineGeometry();
connectorGeometry.StartPoint = pOne;
connectorGeometry.EndPoint = pTwo;
lineGroup.Children.Add(connectorGeometry);
path = new System.Windows.Shapes.Path();
path.Data = lineGroup;
path.StrokeThickness = 1;
path.Stroke = path.Fill = Brushes.Red;
//fill the static linegroup with a new point
lineGroupDrw1.Children.Add(connectorGeometry);
if (coordinateSystem.Width > t)
{
// draw graph
coordinateSystem.Children.Add(path);
}
else
{
//To do : update drawing
updateDrawingEnd();
}
//refresh values
xOld = t;
yOld = value;
}
....
public void updateDrawingEnd()
{
path = new System.Windows.Shapes.Path();
path.Data = lineGroupDrw1;
path.StrokeThickness = 1;
path.Stroke = path.Fill = Brushes.Yellow;
coordinateSystem.Children.Add(path);
t = 145;
}
Опубликуйте свой полный код и XAML. –