double factor = 5.2; //TODO:二分 private void button3_Click(object sender, EventArgs e) { double x1 = StartPoint.X, y1 = StartPoint.Y, x2 = EndPoint.X, y2 = EndPoint.Y; double k = Math.Sqrt(3) / 3.0; if (x1 > x2) { k = -k; } double dist = GeoAlgorithm.Dist(x1, y1, x2, y2, k); int time = (int)(dist * factor); var r = new Random(); int x = r.Next(500, 600); //TODO:Percent% int y = r.Next(500, 700); A.Swipe(x, y, time); clear(); Thread.Sleep(1800); button1_Click(null, null); }
private void RunAlgorithmGeo(object sender, RoutedEventArgs e) { var a = int.Parse(Geo_A.Text); var b = int.Parse(Geo_B.Text); var d = decimal.Parse(Geo_D.Text, CultureInfo.InvariantCulture); var tau = decimal.Parse(Geo_Tau.Text, CultureInfo.InvariantCulture); var t = int.Parse(Geo_T.Text); GeoAlgorithm = new GeoAlgorithm(a, b, d, tau, t); GeoAlgorithm.Run(); DisplaySummaryInGeoSummaryDataGrid(); GenerateGeoPlot(); }
private void TestGeoAlgorithm(object sender, RoutedEventArgs e) { var t = 5000; var a = -4; var b = 12; var d = 0.001m; var tauRangeList = new List <decimal>(); var current = 0.5m; var end = 3m; var step = 0.1m; while (current <= end) { tauRangeList.Add(current); current += step; } var tauRange = tauRangeList.ToArray(); var random = new Random(); var manager = new NumberFormatService(a, b, d, random); var tauResults = new List <TauTestResult>(); foreach (var tau in tauRange) { Console.WriteLine($"testing {tau}"); var results = new List <decimal>(); var resultsTSelf = new List <decimal>(); for (int i = 0; i < 1000; i++) { var algorithm = new GeoAlgorithm(tau, t, random, manager); algorithm.Run(); results.Add(algorithm.ResultFx); resultsTSelf.Add(algorithm.SelfBestT); } tauResults.Add(new TauTestResult { Tau = tau, AverageBestFx = results.Average(), AverageSelfBestIteration = resultsTSelf.Average() }); } DrawGeoTestPlot(tauResults); GeoTestDataGrid.ItemsSource = tauResults; }