!1391 修复:简化内部网洞时,带圆弧的结果错误的问题 #I2D59A

pull/1391/MERGE
ChenX 4 years ago
parent 288016458f
commit cc697507e4

@ -64,7 +64,7 @@ export function Polylin2Points(pl: Polyline, outside: boolean, knifRadius: numbe
radius = radius / Math.cos(allAngle / (splitCount * 2));
let cp = arc.Center;
for (let j = outside ? 0.5 : 0; j < splitCount; j++)
for (let j = 0.5; j < splitCount; j++)
{
let a = arc.GetAngleAtParam(j * (1 / splitCount));
let p = polar(cp.clone(), a, radius);

@ -27,13 +27,14 @@ export class Command_TestSimply implements Command
if (plsRes.Status !== PromptStatus.OK)
return;
let pls = plsRes.SelectSet.SelectEntityList as Polyline[];
let pls = plsRes.SelectSet.SelectEntityList as (Polyline | Circle)[];
Log("绿色代表简化后的结果,黄色代表外偏移后的结果,红色代表内偏移后的结果!");
for (let polyline of pls)
{
polyline.UpdateMatrixTo(new Matrix4);
if (polyline instanceof Polyline)
polyline.UpdateMatrixTo(new Matrix4);
if (polyline.Area2 < 0) polyline.Reverse();
let wrap = new CurveWrap(polyline, 3, true);
@ -41,6 +42,7 @@ export class Command_TestSimply implements Command
TestDraw(pl, 2);
let wrap2 = new CurveWrap(polyline, 3, false);
// TestDraw(wrap2.Curve.Clone(), 5); //测试中间结果(原始轮廓第一次转换成点表时)
let pl2 = Path2Polyline(wrap2.GetInsidePoints());
TestDraw(pl2, 1);
}

Loading…
Cancel
Save