|
|
@ -20,13 +20,15 @@ export function Circle2Points(circle: Circle, knifRadius: number, splitSize = 10
|
|
|
|
let an = Math.PI * 2 / splitSize;
|
|
|
|
let an = Math.PI * 2 / splitSize;
|
|
|
|
|
|
|
|
|
|
|
|
if (outside)
|
|
|
|
if (outside)
|
|
|
|
radius = radius / Math.cos(an / 2);
|
|
|
|
radius = radius / Math.cos(an / 2) + knifRadius;
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
radius -= knifRadius;
|
|
|
|
|
|
|
|
|
|
|
|
let cenP = circle.Center;
|
|
|
|
let cenP = circle.Center;
|
|
|
|
let pts: Vector3[] = [];
|
|
|
|
let pts: Vector3[] = [];
|
|
|
|
for (let i = 0; i < splitSize; i++)
|
|
|
|
for (let i = 0; i < splitSize; i++)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
pts.push(polar(cenP.clone(), an * i, radius + knifRadius));
|
|
|
|
pts.push(polar(cenP.clone(), an * i, radius));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return pts as Point[];
|
|
|
|
return pts as Point[];
|
|
|
|
}
|
|
|
|
}
|
|
|
|