1.部署SuperMap iObjects.NET控件

    相关控件部署参考博客:SuperMap开发入门2——环境部署——我也是个傻瓜

2.Github项目地址

    小球平抛运动项目源码

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控件控制创建时间,达到模拟小球平抛运动的效果。

最新文章

  1. VS中的jQuery
  2. xbmc的静态链接办法
  3. hdu 4348 To the moon
  4. Dataset的基本操作
  5. STL迭代器笔记
  6. 纠结的NTP安装过程
  7. 1、Window10 Electron 开发环境搭建
  8. 使用KindEditor富文本编辑器,点击批量上传按钮没有选择图片按钮
  9. tomcat、weblogic、jboss的区别,容器的作用
  10. mystricpy的实现???
  11. core ML学习
  12. cobbler一键批量安装系统
  13. HDU 2665 Kth number(主席树静态区间第K大)题解
  14. matlab-调用摄像头人脸识别
  15. Python3学习之路~5.11 configparser模块
  16. python 全栈开发,Day20(object类,继承与派生,super方法,钻石继承)
  17. 【基础】iframe之间的切换(四)
  18. 阿里云centos 开启ipv6
  19. 1.String、StringBuffer与StringBuilder之间区别
  20. [转][solr] - 索引数据删除

热门文章

  1. Little Elephant and Array CodeForces - 220B (莫队)
  2. 牛客多校第3场 J 思维+树状数组+二分
  3. jdk8下面的ArrayList的扩容
  4. lambda应用
  5. 超简单!pytorch入门教程(四):准备图片数据集
  6. 如何看Crash 文件
  7. Controller中页面跳转完后页面的样式全消失的解决办法
  8. $cometoj\#4\ D\ $求和 不是$dp$
  9. $SP15637\ GNYR04H\ -\ Mr\ Youngs\ Picture\ Permutations$
  10. docker概述和基本命令