Merge branch 'master' into offset_bug

pull/76/head
ChenX 6 years ago
commit f40c255884

@ -70,6 +70,10 @@ exports[`圆弧合并 1`] = `1`;
exports[`圆弧合并 2`] = `0.5`; exports[`圆弧合并 2`] = `0.5`;
exports[`圆弧合并 3`] = `0.5`;
exports[`圆弧合并 4`] = `0`;
exports[`最近点 1`] = ` exports[`最近点 1`] = `
Vector3 { Vector3 {
"x": 0, "x": 0,

@ -208,6 +208,13 @@ test('圆弧合并', () =>
expect(arc.StartAngle).toMatchSnapshot(); expect(arc.StartAngle).toMatchSnapshot();
expect(arc.EndAngle).toMatchSnapshot(); expect(arc.EndAngle).toMatchSnapshot();
//终点在里面,起点在外面
arc = new Arc(new Vector3(), 1, 0, 1).Reverse();
arc2 = new Arc(new Vector3(), 1, 5, 0.5).Reverse();
expect(arc.Join(arc2)).toBeTruthy();
expect(arc.StartAngle).toMatchSnapshot();
expect(arc.EndAngle).toMatchSnapshot();
//包含. //包含.
arc = new Arc(new Vector3(), 1, 0, 1).Reverse(); arc = new Arc(new Vector3(), 1, 0, 1).Reverse();
arc2 = new Arc(new Vector3(), 1, 5, 3); arc2 = new Arc(new Vector3(), 1, 5, 3);

@ -322,20 +322,25 @@ export class Arc extends Curve
this.ConverToCircle();//圆 this.ConverToCircle();//圆
else else
this.StartAngle = sa; this.StartAngle = sa;
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;
return true; return true;
} }
else if (this.ParamOnCurve(this.GetParamAtAngle(sa)))
if (eaAllan < saAllan && saAllan < allAn) {
if (eaAllan < saAllan)
this.ConverToCircle();
else if (eaAllan > allAn)
this.EndAngle = ea;
return true;
}
else if (this.ParamOnCurve(this.GetParamAtAngle(ea)))
{ {
this.ConverToCircle();//圆 this.StartAngle = sa;
return true; return true;
} }
@ -491,7 +496,7 @@ export class Arc extends Curve
return this; return this;
} }
FromThreePoint(pt1: Vector3, pt2: Vector3, pt3: Vector3) FromThreePoint(pt1: Vector3, pt2: Vector3, pt3: Vector3)
{ {
if (!(pt1 && pt2 && pt3)) if (!(pt1 && pt2 && pt3))
return; return;

Loading…
Cancel
Save