美文网首页
绘制模式

绘制模式

作者: 46c039090c91 | 来源:发表于2019-04-16 15:08 被阅读0次

除了在SDK中写死输入的点线面之外,常用的就是绘制模式,绘制模式中,点的绘制比较麻烦,线面的绘制比较简单。

1.点的绘制

由于通常的绘制习惯都是鼠标左键打点,但是在日常的时候,左键经常会使用到,因此如果直接进行绘制点的话,不能区分是拖动地图还是进入绘制的状态。

1.1设置一个全局的点

Point Location_MouseDown;

1.2判定这个点是否就是绘制的点,即判定鼠标左键放下和抬起是否在同一个位置

globeControl1.Globe.Action = EnumAction3D.NormalHit;//鼠标浏览的状态

            globeControl1.MouseUp += (sender2, e2) =>

            {

                Location_MouseDown = e2.Location;

            };

            globeControl1.MouseUp += (sender2, e2) =>

            {

                if (Location_MouseDown != e2.Location) return;

                if (e2.Button == MouseButtons.Left)

1.3若果确认为是这个点,那么获取这个点,这个点作为一个要素,添加到内存图层中。


if (globeControl1.Globe.Action == EnumAction3D.NormalHit)

                    {

                        GSOPoint3d point3d = new GSOPoint3d();

                        GSOFeature newFeature = new GSOFeature();

                        GSOGeoMarker p = new GSOGeoMarker();

                        GSOMarkerStyle3D style = new GSOMarkerStyle3D();

                        style.IconPath = Application.StartupPath + "/Resource/image/DefaultIcon.png";

                        p.Style = style;

                        p.Z = point3d.Z <= 0 ? 0 : point3d.Z;

                        if (point3d.Z <= 0.0)

                        {

                            point3d = globeControl1.Globe.ScreenToScene(e2.X, e2.Y);

                        }

                        p.X = point3d.X;

                        p.Y = point3d.Y;

                        p.Z = point3d.Z;

                        p.Text = "标注";

                        newFeature.Geometry = p;

                        newFeature.Name = "我的地标";

                        globeControl1.Globe.MemoryLayer.AddFeature(newFeature);

                        globeControl1.Globe.Action = EnumAction3D.ActionNull;

                        globeControl1.Globe.FlyToFeature(newFeature);

                        globeControl1.Refresh();

                    }

                }

            };

相关代码 相关代码

1.4绘制点的过程可以写成一个独立的方法,前半部分可以专门用来拾取球控件中的点

2.线的绘制

globeControl1.Globe.Action = EnumAction3D.DrawPolygon;

3.面的绘制

globeControl1.Globe.Action = EnumAction3D.TrackPolygon;

4.水面和矩形的绘制参考开发文档

5.要对点线面进行编辑,需要用到后面的事件回调

相关文章

  • Patterns

    模式是重复绘制到图形上下文的绘制操作序列。 您可以使用与使用颜色相同的方式使用模式。 当使用模式绘制时,Quart...

  • 绘制模式

    除了在SDK中写死输入的点线面之外,常用的就是绘制模式,绘制模式中,点的绘制比较麻烦,线面的绘制比较简单。 1.点...

  • Paint实现滤镜效果

    利用Paint绘制滤镜Xfermode PorterDuff.Mode图层混合模式一共有18种模式。 它将所绘制的...

  • 利用UIBezierPath绘制空心圆角图片

    1. 填充颜色时设置混合模式 CGBlendMode: 绘制时使用的混合模式,设置为clear,在绘制时显示为透明...

  • 【无机纳米材料科研制图——Visio 0308】Visio流程图

    此篇,我们来分享在Visio流程图模式下的流程图绘制。 一、流程图模式绘制流程图 1)选择流程图模式。...

  • 设计模式

    设计模式笔记 学会读图 UML我要看懂图UML类图 时序图在线绘制在线绘制时序图工具集合 Builder模式 bu...

  • 自定义ViewGroup实现LinearLayout

    本文目录 ViewGroup的绘制流程 onMeasure()函数与MeasureSpec 模式分类 如何使用模式...

  • OpenGL-MVP模式的六种图元绘制

    开场白 这篇文章主要聊聊使用MVP模式的图元绘制,先来看看效果 1.空格切换绘制模式: main函数中增加键盘的回...

  • Paint方法总结(三):图层混合模式

    参考扔物线大神博客 离屏绘制 在介绍图层混合模式之前先简单的说一下Android的离屏绘制。离屏绘制就是图层绘制的...

  • 自学 openGL(一)-理论基础

    核心渲染模式与立即渲染模式 立即渲染模式 早期 openGL 使用的渲染模式,也称固定渲染管线,这个模式下绘制图形...

网友评论

      本文标题:绘制模式

      本文链接:https://www.haomeiwen.com/subject/rjsbwqtx.html