GIS开发:画曲线(贝塞尔)

简介: GIS开发:画曲线(贝塞尔)

在地图开发中,有时会用到画曲线,一般的地图API中,都会提供画曲线的方法,或者提供相应的图例。

下边简单的介绍一下,如何在地图上根据点的位置,画一条贝塞尔曲线。

贝塞尔曲线(Bézier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋,我们在绘图工具上看到的钢笔工具就是来做这种矢量曲线的。贝塞尔曲线是计算机图形学中相当重要的参数曲线,在一些比较成熟的位图软件中也有贝塞尔曲线工具,如PhotoShop等。--来自百科

在地图上画的时候,小范围画的时候,经纬度坐标或者平面坐标系的方式差不多,大范围的时候,尽量要将经纬度转换成长度单位(例如米制)来进行画,因为算法的时候,计算的都是根据相应的距离。

贝塞尔的算法,在github上可以搜索到很多,根据自己的开发语言选择其中的一类即可。
image.png
简单的js示例:https://github.com/Aaaaaaaty/bezierMaker.js

在画曲线的时候,最少需要3个点才能进行勾画,传入3个以上点的坐标,即可生成曲线效果。
image.png
本身这个算法开源的就很多,在地图上画的时候,只是涉及到经纬度,是弧度制的单位,画起来会有相应的顾虑,理解其中的原理,直接传入距离类型的坐标,就能画出以上这种曲线的效果。

注:在三维的球面地图上画曲线的时候,要把高度的值也作为一个因素传入进去,要不然画的效果达不到。

相关文章
|
4月前
|
数据可视化 定位技术 网络架构
R语言在地图上绘制月亮图、饼状图数据可视化果蝇基因种群
R语言在地图上绘制月亮图、饼状图数据可视化果蝇基因种群
|
4月前
|
数据可视化
绘制GGPLOT2双色XY区间面积图组合交叉折线图数据可视化
绘制GGPLOT2双色XY区间面积图组合交叉折线图数据可视化
|
4月前
R语言中绘制箱形图的替代品:蜂群图和小提琴图
R语言中绘制箱形图的替代品:蜂群图和小提琴图
|
4月前
|
编解码 数据可视化 定位技术
Google Earth Engine谷歌地球引擎GEE地理坐标系与投影坐标系变换与重投影
Google Earth Engine谷歌地球引擎GEE地理坐标系与投影坐标系变换与重投影
165 1
|
11月前
跟着 Cell 学作图 | 柱状图+误差棒+蜂群图
跟着 Cell 学作图 | 柱状图+误差棒+蜂群图
151 0
|
数据可视化 数据挖掘
热图的基础绘制(Matlab代码实现)
热图的基础绘制(Matlab代码实现)
229 0
|
数据可视化 定位技术
GIS空间分析 数字地形分析4 明暗等高线的制作
🎈🎈🎈在本文中,你将学到如何利用ArcGIS软件基于DEM数据制作一副伪3D的明暗等高线图。期待点赞+关注😉。
154 0
|
机器学习/深度学习 传感器 算法
无人机基础训练之三维地图定义与散点拟合插值附matlab代码
无人机基础训练之三维地图定义与散点拟合插值附matlab代码
|
定位技术 Python
综合练习之海龟作图
综合练习之海龟作图
98 0
|
数据可视化 数据挖掘 Python
跟着Nature学作图:R语言ggplot2三角热图按照指定的角度旋转
跟着Nature学作图:R语言ggplot2三角热图按照指定的角度旋转