From c8b7d15d6e5339d8703931e9eaac8ed8293f6b04 Mon Sep 17 00:00:00 2001 From: ethan Date: Mon, 20 May 2024 19:25:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8F=8C=E7=AE=AD=E5=A4=B4?= =?UTF-8?q?=E6=95=B4=E4=BD=93=E8=A2=AB=E6=8B=96=E6=8B=BD=E5=90=8E=E7=94=9F?= =?UTF-8?q?=E9=95=BF=E5=8A=A8=E7=94=BB=E8=B7=AF=E5=BE=84=E4=B8=8D=E6=AD=A3?= =?UTF-8?q?=E7=A1=AE=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/arrow/double-arrow.ts | 12 +++++------- src/base.ts | 5 +++++ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/arrow/double-arrow.ts b/src/arrow/double-arrow.ts index 3dcf1a8..38ed574 100644 --- a/src/arrow/double-arrow.ts +++ b/src/arrow/double-arrow.ts @@ -53,8 +53,6 @@ export default class DoubleArrow extends Base { this.lineEntity && this.viewer.entities.remove(this.lineEntity); } else { this.finishDrawing(); - this.curveControlPointLeft = this.cesium.Cartesian3.fromDegrees(this.llBodyPnts[2][0], this.llBodyPnts[2][1]); - this.curveControlPointRight = this.cesium.Cartesian3.fromDegrees(this.rrBodyPnts[1][0], this.rrBodyPnts[1][1]); // // 辅助查看插值控制点位置 // this.viewer.entities.add({ @@ -76,11 +74,11 @@ export default class DoubleArrow extends Base { } } - // finishDrawing() { - // this.curveControlPointLeft = this.cesium.Cartesian3.fromDegrees(this.llBodyPnts[2][0], this.llBodyPnts[2][1]); - // this.curveControlPointRight = this.cesium.Cartesian3.fromDegrees(this.rrBodyPnts[1][0], this.rrBodyPnts[1][1]); - // super.finishDrawing(); - // } + finishDrawing() { + this.curveControlPointLeft = this.cesium.Cartesian3.fromDegrees(this.llBodyPnts[2][0], this.llBodyPnts[2][1]); + this.curveControlPointRight = this.cesium.Cartesian3.fromDegrees(this.rrBodyPnts[1][0], this.rrBodyPnts[1][1]); + super.finishDrawing(); + } /** * Draw a shape based on mouse movement points during the initial drawing. */ diff --git a/src/base.ts b/src/base.ts index 0437858..4d38881 100644 --- a/src/base.ts +++ b/src/base.ts @@ -441,6 +441,11 @@ export default class Base { }); this.setGeometryPoints(newPoints); + if (this.minPointsForShape === 4) { + // 双箭头在整体被拖拽时,需要同步更新生长动画的插值点 + this.curveControlPointLeft = this.cesium.Cartesian3.add(this.curveControlPointLeft, translation, new this.cesium.Cartesian3()); + this.curveControlPointRight = this.cesium.Cartesian3.add(this.curveControlPointRight, translation, new this.cesium.Cartesian3()); + } startPosition = newPosition; } } else {