Skyline(c#)怎么显示三维管线

        /// <summary>
        /// 创建管线(不考虑高程)
        /// </summary>
        /// <param name="x1">起点经度</param>
        /// <param name="y1">起点纬度</param>
        /// <param name="z1">起点高程</param>
        /// <param name="x2">终点经度</param>
        /// <param name="y2">终点纬度</param>
        /// <param name="z2">终点高程</param>
        /// <param name="pipeCaiZhi">管线材质</param>
        /// <param name="pipeGuanJing">管半径</param>
        /// <param name=""></param>
        private void CreatPipe(double x1, double y1, double z1, double x2, double y2, double z2, string pipeCaiZhi, double pipeGuanJing )
        {
            try
            {
                //获取两点间距离
                double pipeLength = SkyLineView.SgWorld.CoordServices.GetDistance(x1, y1, x2, y2);
                //圆柱面数 越大越圆滑但渲染的也就越慢
                int numOfSegments = 20;
                IPosition66 origionPosition = SkyLineView.SgWorld.Creator.CreatePosition(x1, y1, 10);
                IPosition66 tagerPosition = SkyLineView.SgWorld.Creator.CreatePosition(x2, y2, 10);
                IPosition66 pipePosition = SkyLineView.SgWorld.CoordServices.GetAimingAngles(origionPosition, tagerPosition);
                var thisPipe = SkyLineView.SgWorld.Creator.CreateCylinder(origionPosition, pipeGuanJing, pipeLength, NumOfSegments: numOfSegments, LineColor: 33023);
                //因为线是水平的必须旋转90°
                thisPipe.Position.Pitch = 90 - pipePosition.Pitch;
                thisPipe.Position.Yaw = pipePosition.Yaw;
                thisPipe.Position.Roll = pipePosition.Roll;
            }
            catch (Exception CC)
            {

            }
           
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值