public void DrawCirle(Point3D bd_point3D) { try { GeoCircle3D m_circle3d = new GeoCircle3D(bd_point3D, 20); GeoModel3D m_model = m_circle3d.ConvertToGeoModel3D(true); m_rec = m_model.Bounds; //设置数据集容量,避免空间查询出现过多对象 mUseData.OutWaterNetWork.Tolerance.NodeSnap = 0.0001; mUseData.SupplyWaterNetWork.Tolerance.NodeSnap = 0.0001; GeoStyle3D style = new GeoStyle3D(); style.FillForeColor = Color.FromArgb(100, 255, 128, 64); style.AltitudeMode = AltitudeMode.RelativeToGround; style.FillMode = FillMode3D.Fill; m_model.Style3D = style; TrackingLayer3D trackinglayer = mSceneControl.Scene.TrackingLayer; trackinglayer.IsEditable = true; trackinglayer.IsVisible = true; trackinglayer.Add(m_model, "圆"); CircleID = trackinglayer.IndexOf("圆"); } catch (System.Exception ex) { Trace.WriteLine(ex.Message); } }
public void Output(SuperMap.UI.Tracked3DEventArgs e1) { try { //绘制量算面对象 GeoRegion3D geoRegion3D = e1.Geometry as GeoRegion3D; //得到面对象的外接矩形,作为查询区域 m_rec = geoRegion3D.Bounds; //设置数据集容量,避免空间查询出现过多对象 mUseData.OutWaterNetWork.Tolerance.NodeSnap = 0.0001; mUseData.SupplyWaterNetWork.Tolerance.NodeSnap = 0.0001; mGeoStyle3D = new GeoStyle3D(); mGeoStyle3D.MarkerColor = Color.FromArgb(255, 0, 255); mGeoStyle3D.LineColor = Color.FromArgb(255, 255, 0); mGeoStyle3D.LineWidth = 1; mGeoStyle3D.FillForeColor = Color.FromArgb(100, 250, 250, 50); // mGeoStyle3D.AltitudeMode = AltitudeMode.ClampToGround; geoRegion3D.Style3D = mGeoStyle3D.Clone(); geoRegion3D.Style3D.AltitudeMode = AltitudeMode.Absolute; geoRegion3D.Style3D.FillForeColor = Color.FromArgb(50, 255, 128, 64); TrackingLayer3D trackinglayer = mSceneControl.Scene.TrackingLayer; trackinglayer.IsEditable = true; trackinglayer.IsVisible = true; trackinglayer.Add(geoRegion3D, "geoRegion3D"); RegionID = trackinglayer.IndexOf("geoRegion3D"); mSceneControl.Action = Action3D.Pan2; } catch (System.Exception ex) { Trace.WriteLine(ex.Message); } }