Arcgis Engnie 汽车沿线路行走

本文介绍了一种使用3DS文件模拟汽车沿Polyline路径行驶的方法。通过读取特征图层和Polyline几何对象,实现汽车位置更新及摄像机视角变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

汽车沿着pollyline行驶

ILayer layer = axSceneControl1.SceneGraph.Scene.get_Layer(5);
            IFeatureLayer featurelayer = (IFeatureLayer)layer;
            IFeatureClass featureclass = featurelayer.FeatureClass;
            IFeature feature = featureclass.GetFeature(0);
            IPolyline polyline = (IPolyline )feature.Shape;
            double d = polyline.Length;
            IPoint point1 = new PointClass();
            IPoint point2 = new PointClass();
            for (int i = 2; i <= (int)d;i++ )
            {
                polyline.QueryPoint(esriSegmentExtension.esriNoExtension, i, false, point1);
                polyline.QueryPoint(esriSegmentExtension.esriExtendAtFrom , i-150, false, point2);
                point2 .Z =13;
                point2.X= point2.X +-50;
                ICamera camera = axSceneControl1.SceneViewer.Camera;
                IPoint point3=new PointClass ();
                point3.X = point1.X;
                point3.Y = point1.Y;
                point3.Z =13;
                camera.Target = point3;
                camera.Observer = point2;
                IScene pscene = axSceneControl1.SceneGraph.Scene;
                IMarker3DSymbol pmark3dsymbol = new Marker3DSymbolClass();
                pmark3dsymbol.CreateFromFile("E:\\3dmax\\汽车.3DS");
                IMarkerSymbol marksy = (IMarkerSymbol)pmark3dsymbol;
                marksy.Size = 20;
                marksy.Angle = 90;
                IElement pelement = new MarkerElementClass();
                IMarkerElement pmarkelement = (IMarkerElement)pelement;
                pmarkelement.Symbol = (IMarkerSymbol)marksy;
                pelement.Geometry = point1;
                IGraphicsLayer player = axSceneControl1.SceneGraph.Scene.BasicGraphicsLayer;
                IGraphicsContainer3D pgraphiccontainer3d = (IGraphicsContainer3D)player;
                pgraphiccontainer3d.DeleteAllElements();
                pgraphiccontainer3d.AddElement((IElement)pmarkelement);
                axSceneControl1.SceneGraph.RefreshViewers();
            }
用3DS文件填充点,移动点,使汽车行驶,并改变camera.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值