画好现成的线段转化成动态物体路径,这个线段可以是创建fly文件时就已经创建好的
也可以是打开自己写的软件自己画的。当然命名的话可以按我写的固定的名称。路线来调用。
也可以再优化一下。动态命名或者选定某条画好的线进行转化。
大致代码如下所示:
/// <summary>
/// 根据画线的结果创建动态路径
/// </summary>
private void buttonX5_Click(object sender, EventArgs e)
{
//创建动态对象
TerraExplorerClass terraExplorerClass = new TerraExplorerClass();
IObjectManager51 objectCar = new TerraExplorerClass();
String filename = Application.StartupPath + @"\Data\消防车\消防车.X";
ITerrainDynamicObject5 iTDynamicObject = objectCar.CreateDynamicObject(DynamicMotionStyle.MOTION_GROUND_VEHICLE,
DynamicObjectType.DYNAMIC_3D_MODEL, filename, 2.0, HeightStyleCode.HS_ON_TERRAIN, 0,"消防车");
iTDynamicObject.TurnSpeed = 200;
iTDynamicObject.Distance = 300;
iTDynamicObject.CircularRoute = 0;
iTDynamicObject.ScaleFactor = 0.02;
//添加路线里面的坐标
int itemID = GetItemIDByName("路线");
ITerrainPolyline5 iTerrainPolyline5 = terraExplorerClass.GetObjectEx(itemID,"ITerrainPolyline5") as ITerrainPolyline5;
//添加路线里的坐标点
int NumofPoint = iTerrainPolyline5.NumOfVertices;
object X, Height, Y;
for (int i = 0; i <= NumofPoint - 1; i++)
{
iTerrainPolyline5.GetVertex(i, out X, out Height, out Y);
iTDynamicObject.AddWaypoint((double)X, (double)Height, (double)Y,80, i);
}
//视角定位至路线的第一个点
//terraExplorerClass.FlyTo((double)X, (double)Y, (double)Height, 123, 0, -90, "FlyToLocation");
//飞至该路线
terraExplorerClass.FlyToObject(iTDynamicObject.ID, ActionCode.AC_PLAY);
}