C#操作Styline二次开发实现画线功能


本文摘自PHP中文网,作者黄舟,侵删。

c#操作styline模型左键点击模型获取坐标,完成画线操作。

1:鼠标点击模型事件


1

2

3

4

5

6

7

8

9

10

11

12

List<IPosition66> pos = new List<IPosition66>();

       private bool Sgworld_OnLButtonClicked(int Flags, int X, int Y)

       {

           

           var sgworld = new SGWorld66();

           var postioninfo = sgworld.Window.PixelToWorld(X, Y);

           IPosition66 ss = postioninfo.Position;

           ss.X = postioninfo.Position.X;

           ss.Y = postioninfo.Position.Y;

           pos.Add(ss);

           return false;

       } 

2:操作画线


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

string tMsg = String.Empty;

          ILinearRing cRing = null;

          IGeometry cPolygonGeometry = null;

          ITerrainPolyline66 cpolyo = null;

          //创建实例

          //MessageBox.Show(String.Format("X:{0}\r\nY:{1}", posl[i].PosX, posl[i].PosX));

          var sgworld = new SGWorld66();

          List<IPosition66> posl = pos;

          int sin = 0;

          sin = posl.Count*3;

          double[] cVerticesArray = new double[sin];

          //获取坐标值

          for (int i = 0; i < posl.Count; i++)

          {

              cVerticesArray[i*3] = posl[i].X;

              cVerticesArray[i*3+1] = posl[i].Y;

              cVerticesArray[i * 3 + 2] = posl[i].Altitude;

          }

          {

              cRing = sgworld.Creator.GeometryCreator.CreateLinearRingGeometry(cVerticesArray);

              cPolygonGeometry = sgworld.Creator.GeometryCreator.CreateLinearRingGeometry(cRing);

          }

          {

              uint nLineColor = 0xFF00FF00; //颜色样式

              AltitudeTypeCode AltitudeType = AltitudeTypeCode.ATC_ON_TERRAIN;

              // D2. Create polygon

              cpolyo = sgworld.Creator.CreatePolyline(cPolygonGeometry, nLineColor, AltitudeType, string.Empty, "Polygon");

              ///注意坐标

              sgworld.Window.PixelToWorld(sgworld.Window.Rect.Left, sgworld.Window.Rect.Top, WorldPointType.WPT_TERRAIN);

          }

以上就是C#操作Styline二次开发实现画线功能的详细内容!

相关阅读 >>

比较c#中值类型和引用类型的区别

c#中foreach实例代码

关于c#视频教程的资源分享

c#如何利用filesystemwatcher控件实现的文件监控的具体示例分享

c#开发微信门户及应用(二)之微信消息处理和应答的图文代码教程

c#中使用反射以及特性简化的实例代码

c#使用free spire.presentation实现对ppt插入与编辑以及删除表格

c# invoke 和 begininvoke之间的区别详解

c#中五种访问修饰符作用范围实例详解

c#实现杨辉三角的示例

更多相关阅读请进入《Styline》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...