public
partial
class
Page : UserControl
... {
private System.Windows.Threading.DispatcherTimer t = new System.Windows.Threading.DispatcherTimer();
private bool tcontrol = false;
private int count = 0;
private Path ph = new Path();
public Page()
...{
InitializeComponent();
t.Interval = new TimeSpan(0, 0, 0, 0, 500);
t.Tick += new EventHandler(t_Tick);
}
void t_Tick(object sender, EventArgs e)
...{
count++;
this.drawsaface.Children.Remove(ph);
ph.Stroke = new SolidColorBrush ...{ Color = Color.FromArgb((byte)100, (byte)0, (byte)255, (byte)0) };
ph.StrokeThickness = 3;
int N = 500;
String pd = get_sin(100, 300, count % N, 200, 4, N);
ph.SetValue(System.Windows.Shapes.Path.DataProperty, pd);
this.drawsaface.Children.Add(ph);
}
private void testButton_Click(object sender, RoutedEventArgs e)
...{
if (!tcontrol)
...{
t.Start();
tcontrol = true;
}
else
...{
t.Stop();
tcontrol = false;
}
}
private String get_sin(int x0, int y0, double phi, double pp, double T, int N)
...{
String dt = "M " + x0 + "," + (pp * Math.Sin(phi) + y0);
for (int i = 1; i < N; i++)
...{
dt += " L " + (i + x0) + "," + (pp * Math.Sin((i - 1) * 2 * 3.14 * T / N + phi) + y0) + " " + (i + x0) + "," + (pp * Math.Sin(i * 2 * 3.14 * T / N + phi) + y0);
}
return dt;
}
}
... {
private System.Windows.Threading.DispatcherTimer t = new System.Windows.Threading.DispatcherTimer();
private bool tcontrol = false;
private int count = 0;
private Path ph = new Path();
public Page()
...{
InitializeComponent();
t.Interval = new TimeSpan(0, 0, 0, 0, 500);
t.Tick += new EventHandler(t_Tick);
}
void t_Tick(object sender, EventArgs e)
...{
count++;
this.drawsaface.Children.Remove(ph);
ph.Stroke = new SolidColorBrush ...{ Color = Color.FromArgb((byte)100, (byte)0, (byte)255, (byte)0) };
ph.StrokeThickness = 3;
int N = 500;
String pd = get_sin(100, 300, count % N, 200, 4, N);
ph.SetValue(System.Windows.Shapes.Path.DataProperty, pd);
this.drawsaface.Children.Add(ph);
}
private void testButton_Click(object sender, RoutedEventArgs e)
...{
if (!tcontrol)
...{
t.Start();
tcontrol = true;
}
else
...{
t.Stop();
tcontrol = false;
}
}
private String get_sin(int x0, int y0, double phi, double pp, double T, int N)
...{
String dt = "M " + x0 + "," + (pp * Math.Sin(phi) + y0);
for (int i = 1; i < N; i++)
...{
dt += " L " + (i + x0) + "," + (pp * Math.Sin((i - 1) * 2 * 3.14 * T / N + phi) + y0) + " " + (i + x0) + "," + (pp * Math.Sin(i * 2 * 3.14 * T / N + phi) + y0);
}
return dt;
}
}