微软官方项目:https://github.com/microsoft/InteractiveDataDisplay.WPF
public void DrawFieldOfViewDynamic(LineGraph line,double center_X=0,double center_Y=0)
{
Task.Run(async () =>
{
//KS:构建原初图形
List<Point> pointList = new List<Point>();
pointList.Add(new Point(-4, 6));
pointList.Add(new Point(4, 6));
pointList.Add(new Point(1, 1));
pointList.Add(new Point(-1, 1));
pointList.Add(new Point(-4, 6));
for (double i = 0; i < 360; i += 2) //KS:i为精度
{
Thread.Sleep(100);
List<Point> pointListTrans = new List<Point>();
for (int j = 0; j < pointList.Count; j++)
{
Point tempPoint = RotateTransform(pointList[j].X - center_X, pointList[j].Y - center_Y, i);
pointListTrans.Add(tempPoint);
}
//KS:切换两种刷新方法
PenDrawKeepOld(line, pointListTrans);
//PenDrawRefresh(line, pointListTrans);
}
await Task.Delay(1);
});
}