(v1, v2, vx, lengthDiff, area, lengthdiff2)
| 626 | |
| 627 | |
| 628 | def ParaDistance(v1, v2, vx, lengthDiff, area, lengthdiff2): |
| 629 | x = (v1.x2 + v2.x1) / 2 |
| 630 | y = (v1.y2 + v2.y1) / 2 |
| 631 | |
| 632 | if v1.x1 == v1.x2: |
| 633 | k1 = 0 |
| 634 | k2 = 0 |
| 635 | b1 = y - k1 * x |
| 636 | b2 = y - k2 * x |
| 637 | yn = k1 * (x + 1) + b1 |
| 638 | vn1 = Vector(x + 1, yn, x, y, 0) |
| 639 | yn1 = k2 * (x + 1) + b2 |
| 640 | vn2 = Vector(x, y, x + 1, yn1, 1) |
| 641 | else: |
| 642 | if v1.k() != 0: |
| 643 | k1 = -1 / v1.k() |
| 644 | k2 = k1 |
| 645 | b1 = y - k1 * x |
| 646 | b2 = y - k2 * x |
| 647 | yn = k1 * (x + 1) + b1 |
| 648 | vn1 = Vector(x + 1, yn, x, y, 0) |
| 649 | yn1 = k2 * (x + 1) + b2 |
| 650 | vn2 = Vector(x, y, x + 1, yn1, 1) |
| 651 | |
| 652 | if v1.k() == 0: |
| 653 | vn1 = Vector(x, v1.y1, x, y, 0) |
| 654 | vn2 = Vector(x, y, x, v2.y1, 1) |
| 655 | |
| 656 | x1, y1 = IntersectPt(v1, vn1, vx) |
| 657 | d1 = ((x - x1) ** 2 + (y - y1) ** 2) ** 0.5 |
| 658 | x2, y2 = IntersectPt(v2, vn2, vx) |
| 659 | d2 = ((x - x2) ** 2 + (y - y2) ** 2) ** 0.5 |
| 660 | |
| 661 | vp1 = Vector(v1.x2, v1.y2, x1, y1, 0) |
| 662 | vp2 = Vector(v2.x1, v2.y1, x2, y2, 0) |
| 663 | v12 = Vector(v1.x2, v1.y2, v2.x1, v2.y1, 0) |
| 664 | |
| 665 | if (vp1.length() == 0 or vp2.length() == 0) and d1 + d2 > lengthDiff: |
| 666 | return 0, 0, 0, 0, -1 |
| 667 | |
| 668 | if d1 + d2 <= lengthDiff or v12.length() < lengthDiff / 1.5: |
| 669 | if ( |
| 670 | area >= 100 and v1.length() < lengthdiff2 and v2.length() < lengthdiff2 |
| 671 | ) or area < 100: |
| 672 | return 0, 0, 0, 0, 0 |
| 673 | else: |
| 674 | return 0, 0, 0, 0, 3 |
| 675 | |
| 676 | if d1 + d2 > lengthDiff: |
| 677 | if ( |
| 678 | area >= 200 and v1.length() < lengthdiff2 and v2.length() < lengthdiff2 |
| 679 | ) or area < 200: |
| 680 | return x1, y1, x2, y2, 1 |
| 681 | else: |
| 682 | return 0, 0, 0, 0, -1 |
| 683 | |
| 684 | |
| 685 | def LocalResc(vList, vx, angleDiff, lengthdiff1, lengthdiff2, area): |
no test coverage detected