poly-extrude 0.18.1 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,24 +1,35 @@
1
1
  import { PolylineType, ResultType } from './type';
2
- type PolylinesOptions = {
3
- depth?: number;
2
+ type ExpandLineOptions = {
4
3
  lineWidth?: number;
4
+ cutCorner?: boolean;
5
+ };
6
+ type PolylinesOptions = ExpandLineOptions & {
7
+ depth?: number;
5
8
  bottomStickGround?: boolean;
6
9
  pathUV?: boolean;
7
10
  };
8
- type PolylinesResult = ResultType & {
9
- lines: Array<PolylineType>;
10
- };
11
- export declare function extrudePolylines(lines: Array<PolylineType>, opts?: PolylinesOptions): PolylinesResult;
12
11
  type SlopesOptions = PolylinesOptions & {
13
12
  side?: 'left' | 'right';
14
13
  sideDepth?: number;
15
14
  };
15
+ type PolylinesResult = ResultType & {
16
+ lines: Array<PolylineType>;
17
+ };
18
+ export declare function extrudePolylines(lines: Array<PolylineType>, opts?: PolylinesOptions): PolylinesResult;
16
19
  export declare function extrudeSlopes(lines: Array<PolylineType>, opts?: SlopesOptions): PolylinesResult;
17
- export declare function expandLine(line: any, options: any): {
20
+ export declare function expandLine(line: any, options?: ExpandLineOptions): {
18
21
  offsetPoints: number[][];
19
22
  leftPoints: number[][];
20
23
  rightPoints: number[][];
21
24
  line: any;
22
25
  };
23
26
  export declare function leftOnLine(p: any, p1: any, p2: any): boolean;
27
+ /**
28
+ * 平移线
29
+ * @param {*} p1
30
+ * @param {*} p2
31
+ * @param {*} distance
32
+ * @returns
33
+ */
34
+ export declare function translateLine(p1: any, p2: any, distance: any): any[][][];
24
35
  export {};
package/dist/polyline.js CHANGED
@@ -70,10 +70,15 @@ function generateTopAndBottom(result, options) {
70
70
  const { leftPoints, rightPoints } = result;
71
71
  const line = result.line;
72
72
  const pathUV = options.pathUV;
73
+ let uvCalPath = line;
74
+ // let needCalUV = false;
75
+ if (leftPoints.length > uvCalPath.length) {
76
+ uvCalPath = leftPoints;
77
+ }
73
78
  if (pathUV) {
74
- calLineDistance(line);
75
- for (let i = 0, len = line.length; i < len; i++) {
76
- leftPoints[i].distance = rightPoints[i].distance = line[i].distance;
79
+ calLineDistance(uvCalPath);
80
+ for (let i = 0, len = uvCalPath.length; i < len; i++) {
81
+ leftPoints[i].distance = rightPoints[i].distance = uvCalPath[i].distance;
77
82
  }
78
83
  }
79
84
  let i = 0, len = leftPoints.length;
@@ -85,12 +90,14 @@ function generateTopAndBottom(result, options) {
85
90
  points[idx0] = x1;
86
91
  points[idx0 + 1] = y1;
87
92
  points[idx0 + 2] = lz + z1;
93
+ // const p1 = leftPoints[i];
88
94
  // top right
89
95
  const [x2, y2, z2] = rightPoints[i];
90
96
  const idx1 = len * 3 + idx0;
91
97
  points[idx1] = x2;
92
98
  points[idx1 + 1] = y2;
93
99
  points[idx1 + 2] = rz + z2;
100
+ // const p2 = rightPoints[i];
94
101
  // bottom left
95
102
  const idx2 = (len * 2) * 3 + idx0;
96
103
  points[idx2] = x1;
@@ -109,8 +116,8 @@ function generateTopAndBottom(result, options) {
109
116
  }
110
117
  // generate path uv
111
118
  if (pathUV) {
112
- const p = line[i];
113
- const uvx = p.distance;
119
+ const p = uvCalPath[i];
120
+ let uvx = p.distance;
114
121
  const uIndex0 = i * 2;
115
122
  uv[uIndex0] = uvx;
116
123
  uv[uIndex0 + 1] = 1;
@@ -260,38 +267,94 @@ function generateSides(result, options) {
260
267
  }
261
268
  const TEMPV1 = { x: 0, y: 0 }, TEMPV2 = { x: 0, y: 0 };
262
269
  export function expandLine(line, options) {
263
- // let preAngle = 0;
270
+ options = Object.assign({}, { lineWidth: 1, cutCorner: false }, options);
264
271
  let radius = options.lineWidth / 2;
265
272
  if (options.isSlope) {
266
273
  radius *= 2;
267
274
  }
275
+ const { cutCorner } = options;
268
276
  const points = [], leftPoints = [], rightPoints = [];
269
277
  const len = line.length;
278
+ const repeatVertex = () => {
279
+ const len1 = leftPoints.length;
280
+ if (len1) {
281
+ leftPoints.push(leftPoints[len1 - 1]);
282
+ rightPoints.push(rightPoints[len1 - 1]);
283
+ const len2 = points.length;
284
+ points.push(points[len2 - 2], points[len2 - 1]);
285
+ }
286
+ };
287
+ const equal = (p1, p2) => {
288
+ return p1[0] === p2[0] && p1[1] === p2[1];
289
+ };
270
290
  let i = 0;
291
+ let preleftline, prerightline;
271
292
  while (i < len) {
293
+ let p0;
272
294
  let p1 = line[i], p2 = line[i + 1];
273
- const currentp = line[i];
295
+ const currentp = p1;
274
296
  // last vertex
275
297
  if (i === len - 1) {
276
298
  p1 = line[len - 2];
277
299
  p2 = line[len - 1];
300
+ if (equal(p1, p2)) {
301
+ for (let j = line.indexOf(p1); j >= 0; j--) {
302
+ const p = line[j];
303
+ if (!equal(p, currentp)) {
304
+ p1 = p;
305
+ break;
306
+ }
307
+ }
308
+ }
278
309
  }
279
- const dy = p2[1] - p1[1], dx = p2[0] - p1[0];
310
+ else {
311
+ if (equal(p1, p2)) {
312
+ for (let j = line.indexOf(p2); j < len; j++) {
313
+ const p = line[j];
314
+ if (!equal(p, currentp)) {
315
+ p2 = p;
316
+ break;
317
+ }
318
+ }
319
+ }
320
+ }
321
+ if (equal(p1, p2)) {
322
+ repeatVertex();
323
+ i++;
324
+ continue;
325
+ }
326
+ let dy = p2[1] - p1[1], dx = p2[0] - p1[0];
280
327
  let rAngle = 0;
281
- const rad = Math.atan(dy / dx);
328
+ const rad = Math.atan2(dy, dx);
282
329
  const angle = radToDeg(rad);
283
- // preAngle = angle;
284
330
  if (i === 0 || i === len - 1) {
285
331
  rAngle = angle;
286
332
  rAngle -= 90;
287
333
  }
288
334
  else {
289
335
  // 至少3个顶点才会触发
290
- const p0 = line[i - 1];
336
+ p0 = line[i - 1];
337
+ if (equal(p0, p2) || equal(p0, p1)) {
338
+ for (let j = line.indexOf(p2); j >= 0; j--) {
339
+ const p = line[j];
340
+ if (!equal(p, p2) && (!equal(p, p1))) {
341
+ p0 = p;
342
+ break;
343
+ }
344
+ }
345
+ }
346
+ if (equal(p0, p2) || equal(p0, p1) || equal(p1, p2)) {
347
+ repeatVertex();
348
+ i++;
349
+ continue;
350
+ }
291
351
  TEMPV1.x = p0[0] - p1[0];
292
352
  TEMPV1.y = p0[1] - p1[1];
293
353
  TEMPV2.x = p2[0] - p1[0];
294
354
  TEMPV2.y = p2[1] - p1[1];
355
+ if ((TEMPV1.x === 0 && TEMPV1.y === 0) || (TEMPV2.x === 0 && TEMPV2.y === 0)) {
356
+ console.error('has repeat vertex,the index:', i);
357
+ }
295
358
  const vAngle = getAngle(TEMPV1, TEMPV2);
296
359
  rAngle = angle - vAngle / 2;
297
360
  }
@@ -299,15 +362,16 @@ export function expandLine(line, options) {
299
362
  const p3 = currentp;
300
363
  const x = Math.cos(rRad) + p3[0], y = Math.sin(rRad) + p3[1];
301
364
  const p4 = [x, y];
302
- const [line1, line2] = translateLine(p1, p2, radius);
303
- let op1 = lineIntersection(line1[0], line1[1], p3, p4);
304
- let op2 = lineIntersection(line2[0], line2[1], p3, p4);
365
+ const [leftline, rightline] = translateLine(p1, p2, radius);
366
+ let op1 = lineIntersection(leftline[0], leftline[1], p3, p4);
367
+ let op2 = lineIntersection(rightline[0], rightline[1], p3, p4);
305
368
  // 平行,回头路
306
369
  if (!op1 || !op2) {
307
370
  const len1 = points.length;
308
371
  const point1 = points[len1 - 2];
309
372
  const point2 = points[len1 - 1];
310
373
  if (!point1 || !point2) {
374
+ i++;
311
375
  continue;
312
376
  }
313
377
  op1 = [point1[0], point1[1]];
@@ -317,14 +381,60 @@ export function expandLine(line, options) {
317
381
  op2[2] = currentp[2] || 0;
318
382
  // const [op1, op2] = calOffsetPoint(rRad, radius, p1);
319
383
  points.push(op1, op2);
320
- if (leftOnLine(op1, p1, p2)) {
321
- leftPoints.push(op1);
322
- rightPoints.push(op2);
384
+ let needCut = false;
385
+ if (cutCorner) {
386
+ const bufferRadius = radius * 2;
387
+ if (distance(currentp, op1) > bufferRadius || distance(currentp, op2) > bufferRadius) {
388
+ needCut = true;
389
+ }
390
+ }
391
+ if (needCut && p0 && preleftline && prerightline) {
392
+ let cutPoint = op1;
393
+ if (distance(op1, p0) < distance(op2, p0)) {
394
+ cutPoint = op2;
395
+ }
396
+ const dy = cutPoint[1] - currentp[1], dx = cutPoint[0] - currentp[0];
397
+ const cutAngle = Math.atan2(dy, dx) / Math.PI * 180;
398
+ const cutRad = degToRad(cutAngle);
399
+ const x1 = Math.cos(cutRad) * radius + currentp[0];
400
+ const y1 = Math.sin(cutRad) * radius + currentp[1];
401
+ const v1 = [x1, y1];
402
+ const hcutangle = cutAngle + 90;
403
+ // console.log(i, cutAngle, hcutangle);
404
+ const hcutRad = degToRad(hcutangle);
405
+ const x2 = Math.cos(hcutRad) + x1;
406
+ const y2 = Math.sin(hcutRad) + y1;
407
+ const v2 = [x2, y2];
408
+ let preline = preleftline;
409
+ let currentLine = leftline;
410
+ let appendArray = leftPoints;
411
+ let repeatArray = rightPoints;
412
+ if (!leftOnLine(cutPoint, p1, p2)) {
413
+ preline = prerightline;
414
+ currentLine = rightline;
415
+ appendArray = rightPoints;
416
+ repeatArray = leftPoints;
417
+ }
418
+ let cross1 = lineIntersection(preline[0], preline[1], v1, v2);
419
+ let cross2 = lineIntersection(currentLine[0], currentLine[1], v1, v2);
420
+ cross1[2] = currentp[2] || 0;
421
+ cross2[2] = currentp[2] || 0;
422
+ const repeatPoint = cutPoint === op1 ? op2 : op1;
423
+ appendArray.push(cross1, cross2);
424
+ repeatArray.push(repeatPoint, [...repeatPoint]);
323
425
  }
324
426
  else {
325
- leftPoints.push(op2);
326
- rightPoints.push(op1);
427
+ if (leftOnLine(op1, p1, p2)) {
428
+ leftPoints.push(op1);
429
+ rightPoints.push(op2);
430
+ }
431
+ else {
432
+ leftPoints.push(op2);
433
+ rightPoints.push(op1);
434
+ }
327
435
  }
436
+ preleftline = leftline;
437
+ prerightline = rightline;
328
438
  i++;
329
439
  }
330
440
  return { offsetPoints: points, leftPoints, rightPoints, line };
@@ -344,8 +454,13 @@ const getAngle = ({ x: x1, y: y1 }, { x: x2, y: y2 }) => {
344
454
  const dot = x1 * x2 + y1 * y2;
345
455
  const det = x1 * y2 - y1 * x2;
346
456
  const angle = Math.atan2(det, dot) / Math.PI * 180;
347
- return (angle + 360) % 360;
457
+ return (angle);
458
+ // return (angle + 360) % 360;
348
459
  };
460
+ function distance(p1, p2) {
461
+ const dx = p2[0] - p1[0], dy = p2[1] - p1[1];
462
+ return Math.sqrt(dx * dx + dy * dy);
463
+ }
349
464
  export function leftOnLine(p, p1, p2) {
350
465
  const [x1, y1] = p1;
351
466
  const [x2, y2] = p2;
@@ -359,8 +474,11 @@ export function leftOnLine(p, p1, p2) {
359
474
  * @param {*} distance
360
475
  * @returns
361
476
  */
362
- function translateLine(p1, p2, distance) {
477
+ export function translateLine(p1, p2, distance) {
363
478
  const dy = p2[1] - p1[1], dx = p2[0] - p1[0];
479
+ if (dy === 0 && dx === 0) {
480
+ return null;
481
+ }
364
482
  const rad = Math.atan2(dy, dx);
365
483
  const rad1 = rad + Math.PI / 2;
366
484
  let offsetX = Math.cos(rad1) * distance, offsetY = Math.sin(rad1) * distance;
@@ -384,9 +502,11 @@ function translateLine(p1, p2, distance) {
384
502
  function lineIntersection(p1, p2, p3, p4) {
385
503
  const dx1 = p2[0] - p1[0], dy1 = p2[1] - p1[1];
386
504
  const dx2 = p4[0] - p3[0], dy2 = p4[1] - p3[1];
505
+ //vertical
387
506
  if (dx1 === 0 && dx2 === 0) {
388
507
  return null;
389
508
  }
509
+ //horizontal
390
510
  if (dy1 === 0 && dy2 === 0) {
391
511
  return null;
392
512
  }
@@ -1 +1 @@
1
- {"version":3,"file":"polyline.js","sourceRoot":"","sources":["../src/polyline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"polyline.js","sourceRoot":"","sources":["../src/polyline.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "poly-extrude",
3
- "version": "0.18.1",
3
+ "version": "0.20.0",
4
4
  "description": "extrude polyline/polygon etc",
5
5
  "main": "dist/poly-extrude.js",
6
6
  "module": "dist/poly-extrude.mjs",
package/readme.md CHANGED
@@ -166,6 +166,7 @@ ___
166
166
  ```
167
167
 
168
168
  [base demo](https://deyihu.github.io/poly-extrude/test/polygon-on-path.html)
169
+ [wireframe demo](https://deyihu.github.io/poly-extrude/test/polygon-on-path-wireframe.html)
169
170
  [with holes](https://deyihu.github.io/poly-extrude/test/polygon-on-path-hole.html)
170
171
  [with holes by custom shape](https://deyihu.github.io/poly-extrude/test/polygon-on-path-hole1.html)
171
172
  [polygonRotation](https://deyihu.github.io/poly-extrude/test/polygon-on-path-rotation.html)