Reduce the overlap to .25

This commit is contained in:
DD 2018-03-14 18:12:37 -04:00
parent 0d3b276e5e
commit 76eb0b9e3e
2 changed files with 9 additions and 9 deletions

View file

@ -82,17 +82,17 @@ const sortItemsByZIndex = function (a, b) {
return null;
};
// Expand the size of the path by approx one pixel all around
const expandByOne = function (path) {
// Expand the size of the path by amount all around
const expandBy = function (path, amount) {
const center = path.position;
let pathArea = path.area;
for (const seg of path.segments) {
const halfNorm = seg.point.subtract(center)
const delta = seg.point.subtract(center)
.normalize()
.divide(2);
seg.point = seg.point.add(halfNorm);
.multiply(amount);
seg.point = seg.point.add(delta);
// If that made the path area smaller, go the other way.
if (path.area < pathArea) seg.point = seg.point.subtract(halfNorm.multiply(2));
if (path.area < pathArea) seg.point = seg.point.subtract(delta.multiply(2));
pathArea = path.area;
}
};
@ -112,7 +112,7 @@ export {
HANDLE_RATIO,
checkPointsClose,
ensureClockwise,
expandByOne,
expandBy,
getRandomInt,
getRandomBoolean,
snapDeltaToAngle,

View file

@ -1,6 +1,6 @@
import paper from '@scratch/paper';
import {getHoveredItem} from '../hover';
import {expandByOne} from '../math';
import {expandBy} from '../math';
class FillTool extends paper.Tool {
static get TOLERANCE () {
@ -104,7 +104,7 @@ class FillTool extends paper.Tool {
this.addedFillItem.data.origItem = hitItem;
// This usually fixes it so there isn't a teeny tiny gap in between the fill and the outline
// when filling in a hole
expandByOne(this.addedFillItem);
expandBy(this.addedFillItem, .5);
this.addedFillItem.insertAbove(hitItem.parent);
} else if (this.fillItem.parent instanceof paper.CompoundPath) {
this.fillItemOrigColor = hitItem.parent.fillColor;