当前位置:首页 > Web开发 > 正文

double.Parse(textBox3.Text)

2024-03-31 Web开发

????小球平抛运动项目源码

3.项目描述 3.1. 创建小球 geoStyle_P.MarkerAngle = 14.0; geoStyle_P.MarkerSize = new Size2D(5, 5); geoStyle_P.LineColor = Color.Red; GeoPoint point = new GeoPoint(); point.X = Xx[hh]; point.Y = Yy[hh]; point.Style = geoStyle_P; 3.2. 创建轨迹线 Point2D p = map.Center; Point2D pl = map.Center; int m = 0; Xx = ts.Keys.ToList<double>(); Yy = ts.Values.ToList<double>(); Point2Ds point2Ds = new Point2Ds(); for (int i = 0; i < Xx.Count; i++) { Point2D point2D = new Point2D(Xx[i], Yy[i]); point2Ds.Add(point2D); } GeoLine geoLine = new GeoLine(point2Ds); mapControl1.Map.TrackingLayer.Add(geoLine, "线"); mapControl1.Map.Refresh(); 3.3. 平抛运动参数输入 private double Xs(double t) { double v0 = double.Parse(textBox1.Text); return v0 * t; } private double Ys(double t) { double g = double.Parse(textBox3.Text); return 0.5 * g * t * t; } Dictionary<double, double> ts = new Dictionary<double, double>(); string str; public Dictionary<double, double> con() { return ts; } public string name() { return str; } private void button2_Click_1(object sender, EventArgs e) { double t; double ht = Math.Sqrt(2 * double.Parse(textBox2.Text) / double.Parse(textBox3.Text)); for (t = 0; t <= ht; t += 0.1) { double x = Xs(t) + 300; double y = Ys(t) - 400; ts.Add(x, -y); } str = string.Format("当地重力加速度:{0}\n小球程度标的目的初速度:{1}\n小球下落高度:{2}\n小球落地时间:{3}\n小球程度标的目的位移:{4}\n小球总位移:{5}\n小球平抛运动轨迹方程:y=-({6})*x^2", double.Parse(textBox3.Text), double.Parse(textBox1.Text), double.Parse(textBox2.Text), ht, double.Parse(textBox1.Text) * ht, Math.Sqrt(Math.Pow(double.Parse(textBox1.Text) * ht, 2) + Math.Pow(double.Parse(textBox2.Text), 2)), 0.5 * double.Parse(textBox3.Text) / Math.Pow(double.Parse(textBox1.Text), 2)); this.Hide(); } 3.4. 操作timer控件和MapControl的跟踪层模拟小球平抛运动 private void timer1_Tick(object sender, EventArgs e) { if (n) { m = timer1.Interval; n = false; } if (this.timer1.Interval % 2 == 0) { GeoPoint point = new GeoPoint(); point.X = Xx[hh]; point.Y = Yy[hh]; point.Style = geoStyle_P; mapControl1.Map.TrackingLayer.Add(point, "点"); mapControl1.Map.Refresh(); hh++; } m++; if (hh == Xx.Count) { this.richTextBox1.Show(); richTextBox1.Text = str; this.timer1.Interval = 100; n = true; hh = 0; this.timer1.Enabled = false; } } 4.操纵说明 4.1. 输入参数

技术图片

4.2. 模拟效果

技术图片

5.项目总结

????操作SuperMap iObject.NET的MapControl控件的跟踪层TackingLayer可以动态完成小球的创建,结合Timer控件控制创建时间,,到达模拟小球平抛运动的效果。

操作SuperMap iObjects.NET控件模拟小球平抛运动

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31283.html