arcgis js 4 使用pixi.js 绘制贝塞尔曲线

我们先定义一下贝塞尔曲线的数据结构

let option = {
renderer:{
type: "simple",
symbol: {
lineColor: "#14ff34",
lineWidth: 3
}
},
data: [
{
geometry: [
[12958063.6570659, 4857420.273468611],
[12716675.521741385, 3593151.825632137]
],
attributes: {
name: "北京-武汉",
}
},
{
geometry: [
[12609052.185915885, 2656339.6069692653],
[11855688.835137373, 3458622.655850267]
],
attributes: {
name: "广州-重庆",
}
},
{
geometry: [
[12609052.185915885, 2656339.6069692653],
[13521404.55552746, 3666531.372785874]
],
attributes: {
name: "广州-上海",
}
},
{
geometry: [
[12609052.185915885, 2656339.6069692653],
[13785570.925280986, 1381981.4713991268]
],
attributes: {
name: "广州-菲律宾",
}
}
 
]
};

贝塞尔曲线最重要是获取中间那个点


//获取贝塞尔曲线中间控制点的坐标
getPoint(sx, sy, ex, ey){
//获取开始,结束点所在直线1公式
let k = (ey - sy)/(ex - sx);
let b = (k(sy + ey) + (sx + ex))/(2k);
//以开始点为旋转中心,逆时针旋转30度,获得该直线2公式
let angle = (Math.atan2(ey - sy, ex - sx))/(Math.PI/180) + 30;
let k1 = Math.tan((Math.PIangle)/180); let b1 = sy - k1sx;
//中间控制点即为直线1和2的交点
let c1x = (b - b1)/(k1 + 1/k),
c1y = k1*c1x + b1;

 
 
 更多参考https://xiaozhuanlan.com/topic/0781345692
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值