Rewrite equation for pt-on-circle to avoid negative diameter.

This commit is contained in:
whitequark 2017-04-08 14:38:07 +00:00
parent 8fd11f4886
commit 43dc16262a
3 changed files with 7 additions and 2 deletions

View File

@ -425,8 +425,7 @@ void ConstraintBase::GenerateEquations(IdList<Equation,hEquation> *l,
Expr *r = circle->CircleGetRadiusExpr(); Expr *r = circle->CircleGetRadiusExpr();
AddEq(l, AddEq(l, du->Square()->Plus(dv->Square())->Sqrt()->Minus(r), 0);
((du->Square())->Plus(dv->Square()))->Minus(r->Square()), 0);
return; return;
} }

Binary file not shown.

View File

@ -15,3 +15,9 @@ TEST_CASE(normal_migrate_from_v22) {
CHECK_LOAD("normal_v22.slvs"); CHECK_LOAD("normal_v22.slvs");
CHECK_SAVE("normal.slvs"); CHECK_SAVE("normal.slvs");
} }
TEST_CASE(negative_dia) {
CHECK_LOAD("negative_dia.slvs");
Entity *e = SK.GetEntity(hRequest { 4 }.entity(0));
CHECK_TRUE(e->CircleGetRadiusNum() > 0);
}