cesium画飞线_cesium之飞线数据获取(贝塞尔曲线转换)

cesium之飞线数据获取(贝塞尔曲线转换)

最近研究了一下飞线生成的原理,找到一种实现方法。

以下:x指经度,y指纬度,h指飞线高度

原理:

1.通过两个点和飞线高度计算出控制贝塞尔曲线弧度的第三个点

2.将三个点的(y, h)传入贝塞尔曲线算法,得到一条垂直于地面的贝塞尔曲线点数组arr

3.通过两点的直线公式,获取数组arr中每个点的x值,得到空间曲线数组

代码:

//贝塞尔曲线二维转三维 返回一个三维点数组//参数: x1,y1,x2,y2,h 两点经纬度坐标和飞线高度

export functiongetBSRPoints (x1,y1,x2,y2,h) {

let point1= [y1, 0]

let point2= [(y2+y1)/2, h]

let point3 = [y2, 0]

let arr=getBSR(point1, point2, point3)

let arr3d=[]for (let i inarr) {

let x= (x2-x1)*(arr[i][0]-y1)/(y2-y1) + x1

arr3d.push([x, arr[i][0], arr[i][1]])

}returnarr3d

}//生成贝塞尔曲线

functiongetBSR (point1, point2, point3) {var ps = [{ x: point1[0], y: point1[1] }, { x: point2[0], y: point2[1] }, { x: point3[0], y:

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值