(5)基于Leaflet实现标绘——分队战斗行动和分队战斗行动(尾)

分队战斗行动这个图形是由进攻方向继承而来的,最大的不同在于,其父类进攻方向的尾部是由前两个点组成的。而这个图形的箭尾是计算出来的。

(图一)分队战斗行动图形

其中涉及到的关键点位置如下,该图形是由4个点(黄色方块)计算得出的(红色圆圈)。

(图二)图形的点的位置

构成图形部分的核心代码如下,与进攻方向相比,只有箭尾处的计算方法不同。

(图三)核心代码

计算箭尾的点坐标的代码如下图

(图四)计算箭尾的核心代码

allLen是所有点连线的长度,tailWidth是allLen和tailWidthFactor(本图形默认0.1)的乘积。那么,tailLeft和tailRight就是第一个点在第二个点的方向上旋转90°后距离tailWidth距离的点,如下图所示。

(图五)计算箭尾的示意图

若是想要将尾部变成下图所示的燕尾,该如何做呢?

(图六)分队战斗行动(尾)

依然是继承进攻方向,实现的具体代码如下,红框中的代码是与分队战斗行动的核心代码不同的地方。

(图七)核心代码

图解如下,其中swallowTailFactor为1

(图八)箭尾的计算图解

2021.10.13 好多人问我要源码,距离发文已经几年过去了~~源码来啦

你可能感兴趣的:((5)基于Leaflet实现标绘——分队战斗行动和分队战斗行动(尾))