修正圆弧合并 补全测试

pull/59/head
ChenX 7 years ago
parent 404a77773a
commit 6d030032d8

@ -243,3 +243,48 @@ test('圆弧合并', () =>
expect(arc.StartAngle).toBe(0.5); expect(arc.StartAngle).toBe(0.5);
expect(arc.EndAngle).toBe(1); expect(arc.EndAngle).toBe(1);
}); });
test('容差相接', () =>
{
let arc = new Arc(new Vector3(), 1, 0, 1);
let arc2 = new Arc(new Vector3(), 1, 1 + 1e-5, 0.5);
//终点对起点
expect(arc.Join(arc2)).toBeTruthy();
expect(arc.EndAngle).toBe(0.5);
//起点对终点
arc2.EndAngle = 0 + 1e-5;
expect(arc.Join(arc2)).toBeTruthy();
expect(equaln(arc.AllAngle, Math.PI * 2));
arc.StartAngle = 0;
arc.EndAngle = 1;
arc2.StartAngle = 0;
arc2.EndAngle = 0.5;
expect(arc.Join(arc2)).toBeTruthy();
arc.StartAngle //?
expect(arc.EndAngle).toBe(0.5);
//终点对起点
arc.StartAngle = 0;
arc.EndAngle = 1;
arc2.StartAngle = 0.5;
arc2.EndAngle = 1;
expect(arc.Join(arc2)).toBeTruthy();
//起点对起点
arc.StartAngle = 0;
arc.EndAngle = 1;
arc2.StartAngle = 1;
arc2.EndAngle = 0;
expect(arc.Join(arc2)).toBeTruthy();
expect(arc.AllAngle).toBe(Math.PI * 2);
});

@ -305,7 +305,7 @@ export class Arc extends Curve
} }
else if (equaln(sa, this.m_EndAngle))//this终点对起点 else if (equaln(sa, this.m_EndAngle))//this终点对起点
{ {
if (eaAllan < allAn) if (eaAllan < allAn || equaln(ea, this.m_StartAngle))
this.ConverToCircle();//圆 this.ConverToCircle();//圆
else else
this.EndAngle = ea; this.EndAngle = ea;
@ -321,7 +321,7 @@ export class Arc extends Curve
return true; return true;
} }
else if (equaln(ea, this.m_EndAngle))//this终点对 else if (equaln(ea, this.m_EndAngle))//this终点对
{ {
if (saAllan > allAn) if (saAllan > allAn)
this.StartAngle = sa; this.StartAngle = sa;

Loading…
Cancel
Save