があり、Canvas
そこMainWindow
に線を引きます。my の幅/高さを超えて描画するとCanvas
、描画は my で続行されますMainWindow
。私のコードに間違いがありますか、それとも正常ですか?
<Canvas x:Name="coordinateSystem" HorizontalAlignment="Right" Height="580" Margin="0,10,283,0" VerticalAlignment="Top" Width="1024" Cursor="Cross" UseLayoutRounding="False"/>
ラインの新しい座標を取得するたびに呼び出す関数は次のとおりです。
// xOld, yOld and t are static
// t represents the time
private void drawPoly(double value)
{
t++;
Point pOne = new Point(xOld, yOld);
Point pTwo = new Point(t, value);
GeometryGroup lineGroup = new GeometryGroup();
LineGeometry connectorGeometry = new LineGeometry();
connectorGeometry.StartPoint = pOne;
connectorGeometry.EndPoint = pTwo;
lineGroup.Children.Add(connectorGeometry);
System.Windows.Shapes.Path path = new System.Windows.Shapes.Path();
path.Data = lineGroup;
path.StrokeThickness = 1;
path.Stroke = path.Fill = Brushes.Red;
coordinateSystem.Children.Add(path);
xOld = t;
yOld = value;
}
どうも
PS:
描画されたすべてのポイントを保存する方法はありますか? 後でキャンバスのサイズを変更したい(ズームアウト/ズームイン)か、キャンバス内のペイントされた線を大きく移動してから、すべてのポイントを再度描画する必要があります。