diff --git a/src/DatabaseServices/Region.ts b/src/DatabaseServices/Region.ts index 3955290c9..d4ce3b275 100644 --- a/src/DatabaseServices/Region.ts +++ b/src/DatabaseServices/Region.ts @@ -58,14 +58,14 @@ export class Region extends Entity for (let cu of this.m_CuList) { + if (cu.EndPoint.distanceTo(begin) < fuzz) + cu.Reverse(); + + //设置起点 + begin.copy(cu.EndPoint); if (cu instanceof Line) { - if (cu.StartPoint.distanceTo(begin) < fuzz) - begin = cu.EndPoint; - else - begin = cu.StartPoint; - this.m_Shape.lineTo(begin.x, begin.y); } else if (cu instanceof Circle) @@ -78,9 +78,6 @@ export class Region extends Entity } else if (cu instanceof Polyline) { - if (cu.EndPoint.distanceTo(begin) < fuzz) - cu.Reverse(); - let plData = cu.LineData; let pts: Vector2[] = []; let bul: number[] = []; @@ -90,16 +87,10 @@ export class Region extends Entity bul.push(d.bul); } CreateBoardUtil.createPath(pts, bul, this.m_Shape); - - begin = cu.EndPoint; } else if (cu instanceof Arc) { - //起点和终点影响开始角度,结束角度和法向量 - if (begin.distanceTo(cu.StartPoint) < 0.1) - this.m_Shape.absarc(cu.Center.x, cu.Center.y, cu.Radius, cu.StartAngle, cu.EndAngle, cu.Normal.z < 0); - else - this.m_Shape.absarc(cu.Center.x, cu.Center.y, cu.Radius, cu.EndAngle, cu.StartAngle, cu.Normal.z > 0); + this.m_Shape.absarc(cu.Center.x, cu.Center.y, cu.Radius, cu.StartAngle, cu.EndAngle, cu.IsClockWise); } }