Problem Statement
You are given two rectangles in the plane.
The sides of each rectangle are parallel to the coordinate axes.
Each rectangle is given by the coordinates of its lower left corner and its upper right corner.
You are given two
Your task is to determine how their intersection looks like. There are four options:
- If the rectangles have a non-zero area in common, return "rectangle".
- Otherwise, if they have a common line segment with non-zero length, return "segment".
- Otherwise, if they have a point in common, return "point".
- Otherwise, return "none" (in all four cases, the quotes are just for clarity).
Definition
- Class:
- TwoRectangles
- Method:
- describeIntersection
- Parameters:
- int[], int[]
- Returns:
- String
- Method signature:
- String describeIntersection(int[] A, int[] B)
- (be sure your method is public)
Notes
- The Constraints guarantee that both rectangles lie in the first quadrant of the coordinate plane, and each rectangle has a positive area.
Constraints
- A will contain exactly 4 elements.
- The elements of A will satisfy 0 <= A[0] < A[2] <= 1000 and 0 <= A[1] < A[3] <= 1000.
- B will contain exactly 4 elements.
- The elements of B will satisfy 0 <= B[0] < B[2] <= 1000 and 0 <= B[1] < B[3] <= 1000.
Examples
{0,0,3,2}
{1,1,5,3}
Returns: "rectangle"
These two rectangles overlap partially:
{0,0,5,3}
{1,2,2,3}
Returns: "rectangle"
The second rectangle is completely inside the first one.
{1,1,6,2}
{3,2,5,4}
Returns: "segment"
The second rectangle sits on top of the first one.
{0,1,2,3}
{2,0,5,2}
Returns: "segment"
{0,0,1,1}
{1,1,5,2}
Returns: "point"
{1,1,2,2}
{3,1,4,2}
Returns: "none"
{0,0,10,10}
{20,10,30,20}
Returns: "none"
{ 155 , 410 , 162 , 713 }
{ 155 , 410 , 162 , 713 }
Returns: "rectangle"
{ 28 , 70 , 441 , 125 }
{ 28 , 70 , 441 , 554 }
Returns: "rectangle"
{ 69 , 63 , 299 , 420 }
{ 69 , 420 , 299 , 712 }
Returns: "segment"
{ 127 , 148 , 286 , 766 }
{ 127 , 148 , 286 , 593 }
Returns: "rectangle"
{ 177 , 89 , 245 , 480 }
{ 177 , 318 , 245 , 480 }
Returns: "rectangle"
{ 28 , 669 , 700 , 698 }
{ 28 , 164 , 700 , 669 }
Returns: "segment"
{ 315 , 435 , 777 , 450 }
{ 315 , 407 , 777 , 450 }
Returns: "rectangle"
{ 381 , 187 , 494 , 499 }
{ 381 , 703 , 494 , 954 }
Returns: "none"
{ 423 , 190 , 692 , 711 }
{ 423 , 214 , 692 , 955 }
Returns: "rectangle"
{ 104 , 193 , 341 , 801 }
{ 104 , 581 , 341 , 619 }
Returns: "rectangle"
{ 90 , 682 , 618 , 686 }
{ 90 , 202 , 618 , 920 }
Returns: "rectangle"
{ 375 , 105 , 416 , 844 }
{ 375 , 55 , 416 , 807 }
Returns: "rectangle"
{ 171 , 849 , 479 , 955 }
{ 171 , 608 , 479 , 656 }
Returns: "none"
{ 200 , 362 , 324 , 543 }
{ 200 , 362 , 389 , 543 }
Returns: "rectangle"
{ 110 , 638 , 230 , 886 }
{ 110 , 638 , 232 , 949 }
Returns: "rectangle"
{ 159 , 185 , 337 , 420 }
{ 159 , 420 , 531 , 630 }
Returns: "segment"
{ 307 , 229 , 694 , 424 }
{ 307 , 229 , 732 , 384 }
Returns: "rectangle"
{ 87 , 10 , 317 , 297 }
{ 87 , 163 , 441 , 297 }
Returns: "rectangle"
{ 487 , 235 , 496 , 830 }
{ 487 , 188 , 791 , 235 }
Returns: "segment"
{ 110 , 362 , 428 , 433 }
{ 110 , 215 , 472 , 433 }
Returns: "rectangle"
{ 371 , 144 , 572 , 170 }
{ 371 , 417 , 658 , 777 }
Returns: "none"
{ 223 , 88 , 291 , 631 }
{ 223 , 413 , 402 , 633 }
Returns: "rectangle"
{ 19 , 72 , 485 , 778 }
{ 19 , 478 , 600 , 497 }
Returns: "rectangle"
{ 40 , 300 , 323 , 903 }
{ 40 , 165 , 341 , 946 }
Returns: "rectangle"
{ 226 , 408 , 289 , 939 }
{ 226 , 226 , 291 , 850 }
Returns: "rectangle"
{ 516 , 369 , 657 , 615 }
{ 516 , 193 , 813 , 331 }
Returns: "none"
{ 185 , 291 , 414 , 672 }
{ 414 , 291 , 774 , 672 }
Returns: "segment"
{ 22 , 496 , 232 , 500 }
{ 232 , 496 , 511 , 556 }
Returns: "segment"
{ 384 , 191 , 504 , 421 }
{ 504 , 421 , 671 , 509 }
Returns: "point"
{ 565 , 787 , 586 , 846 }
{ 586 , 787 , 689 , 817 }
Returns: "segment"
{ 534 , 222 , 618 , 920 }
{ 618 , 894 , 644 , 920 }
Returns: "segment"
{ 424 , 308 , 599 , 521 }
{ 599 , 279 , 846 , 308 }
Returns: "point"
{ 25 , 575 , 369 , 788 }
{ 369 , 437 , 375 , 788 }
Returns: "segment"
{ 146 , 230 , 230 , 436 }
{ 230 , 547 , 428 , 815 }
Returns: "none"
{ 13 , 522 , 545 , 899 }
{ 545 , 827 , 589 , 921 }
Returns: "segment"
{ 5 , 336 , 538 , 946 }
{ 538 , 351 , 872 , 477 }
Returns: "segment"
{ 18 , 582 , 101 , 644 }
{ 101 , 198 , 154 , 860 }
Returns: "segment"
{ 66 , 368 , 237 , 754 }
{ 237 , 43 , 398 , 487 }
Returns: "segment"
{ 305 , 588 , 565 , 787 }
{ 565 , 311 , 584 , 578 }
Returns: "none"
{ 63 , 111 , 613 , 122 }
{ 63 , 111 , 444 , 122 }
Returns: "rectangle"
{ 77 , 41 , 755 , 133 }
{ 77 , 41 , 272 , 553 }
Returns: "rectangle"
{ 170 , 83 , 505 , 249 }
{ 170 , 249 , 344 , 463 }
Returns: "segment"
{ 183 , 69 , 708 , 883 }
{ 183 , 69 , 437 , 371 }
Returns: "rectangle"
{ 298 , 4 , 797 , 247 }
{ 298 , 114 , 387 , 247 }
Returns: "rectangle"
{ 2 , 81 , 383 , 524 }
{ 2 , 50 , 41 , 81 }
Returns: "segment"
{ 18 , 275 , 474 , 447 }
{ 18 , 233 , 23 , 447 }
Returns: "rectangle"
{ 200 , 440 , 267 , 811 }
{ 200 , 891 , 207 , 960 }
Returns: "none"
{ 276 , 412 , 704 , 902 }
{ 276 , 782 , 519 , 932 }
Returns: "rectangle"
{ 162 , 51 , 818 , 996 }
{ 162 , 141 , 389 , 703 }
Returns: "rectangle"
{ 0 , 27 , 352 , 132 }
{ 0 , 7 , 5 , 633 }
Returns: "rectangle"
{ 75 , 83 , 634 , 944 }
{ 75 , 70 , 153 , 435 }
Returns: "rectangle"
{ 261 , 549 , 682 , 767 }
{ 261 , 408 , 597 , 521 }
Returns: "none"
{ 35 , 47 , 642 , 61 }
{ 227 , 47 , 642 , 61 }
Returns: "rectangle"
{ 254 , 64 , 706 , 308 }
{ 562 , 64 , 706 , 586 }
Returns: "rectangle"
{ 571 , 446 , 763 , 478 }
{ 579 , 478 , 763 , 524 }
Returns: "segment"
{ 180 , 20 , 826 , 570 }
{ 450 , 20 , 826 , 342 }
Returns: "rectangle"
{ 11 , 342 , 120 , 546 }
{ 98 , 485 , 120 , 546 }
Returns: "rectangle"
{ 298 , 213 , 648 , 368 }
{ 496 , 41 , 648 , 213 }
Returns: "segment"
{ 180 , 473 , 786 , 506 }
{ 730 , 466 , 786 , 506 }
Returns: "rectangle"
{ 367 , 689 , 850 , 753 }
{ 428 , 801 , 850 , 980 }
Returns: "none"
{ 258 , 95 , 646 , 404 }
{ 354 , 246 , 646 , 679 }
Returns: "rectangle"
{ 566 , 254 , 867 , 910 }
{ 788 , 681 , 867 , 890 }
Returns: "rectangle"
{ 479 , 143 , 683 , 378 }
{ 493 , 117 , 683 , 665 }
Returns: "rectangle"
{ 546 , 350 , 844 , 575 }
{ 734 , 90 , 844 , 352 }
Returns: "rectangle"
{ 6 , 847 , 329 , 885 }
{ 21 , 25 , 329 , 335 }
Returns: "none"
{ 225 , 48 , 590 , 417 }
{ 154 , 48 , 225 , 417 }
Returns: "segment"
{ 156 , 272 , 503 , 473 }
{ 88 , 272 , 156 , 508 }
Returns: "segment"
{ 593 , 153 , 849 , 171 }
{ 15 , 171 , 593 , 214 }
Returns: "point"
{ 337 , 109 , 400 , 539 }
{ 81 , 109 , 337 , 250 }
Returns: "segment"
{ 363 , 303 , 476 , 614 }
{ 91 , 364 , 363 , 614 }
Returns: "segment"
{ 41 , 344 , 313 , 563 }
{ 12 , 231 , 41 , 344 }
Returns: "point"
{ 450 , 506 , 634 , 553 }
{ 449 , 197 , 450 , 553 }
Returns: "segment"
{ 424 , 72 , 597 , 610 }
{ 371 , 654 , 424 , 985 }
Returns: "none"
{ 362 , 229 , 372 , 728 }
{ 299 , 626 , 362 , 845 }
Returns: "segment"
{ 313 , 91 , 391 , 818 }
{ 113 , 125 , 313 , 714 }
Returns: "segment"
{ 329 , 290 , 360 , 537 }
{ 122 , 100 , 329 , 702 }
Returns: "segment"
{ 239 , 274 , 604 , 818 }
{ 49 , 253 , 239 , 559 }
Returns: "segment"
{ 917 , 870 , 990 , 932 }
{ 572 , 132 , 917 , 683 }
Returns: "none"
{ 150 , 362 , 161 , 434 }
{ 23 , 362 , 161 , 434 }
Returns: "rectangle"
{ 629 , 107 , 632 , 418 }
{ 154 , 107 , 632 , 842 }
Returns: "rectangle"
{ 267 , 352 , 625 , 559 }
{ 121 , 559 , 625 , 695 }
Returns: "segment"
{ 325 , 61 , 482 , 448 }
{ 300 , 61 , 482 , 260 }
Returns: "rectangle"
{ 397 , 90 , 591 , 342 }
{ 378 , 160 , 591 , 342 }
Returns: "rectangle"
{ 303 , 723 , 461 , 922 }
{ 35 , 177 , 461 , 723 }
Returns: "segment"
{ 486 , 310 , 542 , 602 }
{ 8 , 290 , 542 , 602 }
Returns: "rectangle"
{ 140 , 236 , 315 , 433 }
{ 8 , 467 , 315 , 587 }
Returns: "none"
{ 255 , 168 , 470 , 421 }
{ 15 , 233 , 470 , 686 }
Returns: "rectangle"
{ 325 , 63 , 502 , 844 }
{ 109 , 594 , 502 , 712 }
Returns: "rectangle"
{ 598 , 751 , 708 , 889 }
{ 411 , 488 , 708 , 970 }
Returns: "rectangle"
{ 367 , 123 , 389 , 872 }
{ 81 , 78 , 389 , 727 }
Returns: "rectangle"
{ 279 , 579 , 702 , 687 }
{ 269 , 145 , 702 , 465 }
Returns: "none"
{ 441 , 84 , 480 , 605 }
{ 564 , 84 , 867 , 605 }
Returns: "none"
{ 56 , 4 , 371 , 133 }
{ 689 , 4 , 966 , 310 }
Returns: "none"
{ 121 , 123 , 200 , 210 }
{ 500 , 210 , 580 , 552 }
Returns: "none"
{ 69 , 94 , 203 , 776 }
{ 260 , 94 , 706 , 526 }
Returns: "none"
{ 43 , 451 , 112 , 792 }
{ 423 , 597 , 508 , 792 }
Returns: "none"
{ 393 , 301 , 514 , 450 }
{ 543 , 3 , 916 , 301 }
Returns: "none"
{ 231 , 410 , 287 , 739 }
{ 446 , 408 , 826 , 739 }
Returns: "none"
{ 23 , 50 , 434 , 146 }
{ 569 , 528 , 880 , 997 }
Returns: "none"
{ 37 , 249 , 706 , 329 }
{ 778 , 251 , 938 , 978 }
Returns: "none"
{ 13 , 163 , 136 , 744 }
{ 218 , 444 , 759 , 622 }
Returns: "none"
{ 12 , 268 , 856 , 535 }
{ 941 , 113 , 996 , 984 }
Returns: "none"
{ 125 , 300 , 205 , 649 }
{ 587 , 249 , 775 , 578 }
Returns: "none"
{ 1 , 892 , 49 , 970 }
{ 119 , 138 , 940 , 860 }
Returns: "none"
{ 177 , 262 , 460 , 450 }
{ 239 , 262 , 802 , 450 }
Returns: "rectangle"
{ 166 , 86 , 647 , 330 }
{ 599 , 86 , 852 , 447 }
Returns: "rectangle"
{ 59 , 295 , 873 , 346 }
{ 805 , 346 , 946 , 527 }
Returns: "segment"
{ 61 , 297 , 818 , 566 }
{ 581 , 297 , 842 , 514 }
Returns: "rectangle"
{ 21 , 91 , 883 , 264 }
{ 266 , 234 , 977 , 264 }
Returns: "rectangle"
{ 208 , 69 , 430 , 329 }
{ 233 , 39 , 637 , 69 }
Returns: "segment"
{ 66 , 322 , 659 , 419 }
{ 566 , 288 , 769 , 419 }
Returns: "rectangle"
{ 170 , 95 , 392 , 624 }
{ 239 , 760 , 687 , 791 }
Returns: "none"
{ 224 , 225 , 288 , 428 }
{ 238 , 355 , 924 , 819 }
Returns: "rectangle"
{ 324 , 238 , 493 , 705 }
{ 352 , 254 , 603 , 298 }
Returns: "rectangle"
{ 76 , 146 , 531 , 683 }
{ 465 , 21 , 662 , 840 }
Returns: "rectangle"
{ 113 , 415 , 681 , 823 }
{ 155 , 184 , 997 , 441 }
Returns: "rectangle"
{ 84 , 131 , 719 , 552 }
{ 536 , 0 , 985 , 110 }
Returns: "none"
{ 109 , 175 , 686 , 456 }
{ 182 , 175 , 456 , 456 }
Returns: "rectangle"
{ 376 , 193 , 856 , 354 }
{ 515 , 193 , 694 , 755 }
Returns: "rectangle"
{ 399 , 98 , 850 , 104 }
{ 439 , 104 , 813 , 136 }
Returns: "segment"
{ 159 , 41 , 558 , 744 }
{ 255 , 41 , 464 , 676 }
Returns: "rectangle"
{ 58 , 36 , 977 , 615 }
{ 442 , 235 , 467 , 615 }
Returns: "rectangle"
{ 327 , 223 , 926 , 231 }
{ 780 , 56 , 803 , 223 }
Returns: "segment"
{ 68 , 352 , 737 , 424 }
{ 152 , 305 , 458 , 424 }
Returns: "rectangle"
{ 213 , 18 , 701 , 32 }
{ 402 , 139 , 662 , 340 }
Returns: "none"
{ 317 , 50 , 974 , 417 }
{ 378 , 178 , 819 , 991 }
Returns: "rectangle"
{ 220 , 82 , 975 , 994 }
{ 249 , 496 , 698 , 640 }
Returns: "rectangle"
{ 660 , 658 , 974 , 719 }
{ 862 , 424 , 969 , 899 }
Returns: "rectangle"
{ 319 , 341 , 568 , 765 }
{ 469 , 236 , 515 , 405 }
Returns: "rectangle"
{ 8 , 679 , 608 , 783 }
{ 200 , 315 , 253 , 560 }
Returns: "none"
{ 119 , 155 , 263 , 386 }
{ 61 , 155 , 370 , 386 }
Returns: "rectangle"
{ 405 , 126 , 597 , 181 }
{ 357 , 126 , 715 , 813 }
Returns: "rectangle"
{ 209 , 0 , 275 , 14 }
{ 182 , 14 , 365 , 895 }
Returns: "segment"
{ 290 , 144 , 525 , 417 }
{ 70 , 144 , 719 , 353 }
Returns: "rectangle"
{ 99 , 278 , 381 , 600 }
{ 79 , 484 , 455 , 600 }
Returns: "rectangle"
{ 562 , 914 , 584 , 922 }
{ 67 , 546 , 972 , 914 }
Returns: "segment"
{ 398 , 472 , 860 , 709 }
{ 265 , 62 , 997 , 709 }
Returns: "rectangle"
{ 376 , 154 , 661 , 304 }
{ 193 , 401 , 845 , 927 }
Returns: "none"
{ 243 , 187 , 245 , 805 }
{ 202 , 716 , 816 , 959 }
Returns: "rectangle"
{ 398 , 560 , 606 , 869 }
{ 343 , 702 , 616 , 767 }
Returns: "rectangle"
{ 528 , 425 , 713 , 465 }
{ 435 , 58 , 733 , 537 }
Returns: "rectangle"
{ 36 , 191 , 608 , 683 }
{ 12 , 153 , 886 , 475 }
Returns: "rectangle"
{ 406 , 601 , 507 , 805 }
{ 165 , 34 , 822 , 459 }
Returns: "none"
{ 363 , 314 , 475 , 338 }
{ 54 , 314 , 466 , 338 }
Returns: "rectangle"
{ 427 , 112 , 511 , 275 }
{ 92 , 112 , 447 , 277 }
Returns: "rectangle"
{ 295 , 149 , 711 , 219 }
{ 17 , 219 , 399 , 370 }
Returns: "segment"
{ 130 , 159 , 535 , 491 }
{ 106 , 159 , 183 , 387 }
Returns: "rectangle"
{ 291 , 418 , 897 , 708 }
{ 0 , 634 , 552 , 708 }
Returns: "rectangle"
{ 692 , 417 , 983 , 732 }
{ 400 , 281 , 869 , 417 }
Returns: "segment"
{ 747 , 579 , 965 , 742 }
{ 278 , 93 , 887 , 742 }
Returns: "rectangle"
{ 559 , 63 , 886 , 113 }
{ 147 , 192 , 780 , 943 }
Returns: "none"
{ 305 , 254 , 685 , 722 }
{ 220 , 625 , 323 , 742 }
Returns: "rectangle"
{ 76 , 136 , 944 , 411 }
{ 39 , 247 , 930 , 306 }
Returns: "rectangle"
{ 540 , 591 , 857 , 598 }
{ 114 , 349 , 548 , 872 }
Returns: "rectangle"
{ 397 , 664 , 566 , 935 }
{ 139 , 551 , 437 , 716 }
Returns: "rectangle"
{ 398 , 356 , 974 , 422 }
{ 251 , 127 , 822 , 131 }
Returns: "none"
{ 507 , 19 , 866 , 232 }
{ 265 , 19 , 351 , 232 }
Returns: "none"
{ 622 , 81 , 693 , 244 }
{ 187 , 81 , 270 , 373 }
Returns: "none"
{ 170 , 26 , 309 , 376 }
{ 113 , 376 , 131 , 437 }
Returns: "none"
{ 393 , 2 , 469 , 749 }
{ 146 , 2 , 341 , 332 }
Returns: "none"
{ 513 , 71 , 515 , 269 }
{ 180 , 136 , 431 , 269 }
Returns: "none"
{ 581 , 216 , 964 , 571 }
{ 16 , 58 , 73 , 216 }
Returns: "none"
{ 490 , 450 , 740 , 680 }
{ 45 , 12 , 408 , 680 }
Returns: "none"
{ 520 , 2 , 679 , 714 }
{ 45 , 806 , 303 , 911 }
Returns: "none"
{ 371 , 362 , 609 , 569 }
{ 65 , 500 , 271 , 668 }
Returns: "none"
{ 537 , 465 , 585 , 853 }
{ 194 , 563 , 289 , 651 }
Returns: "none"
{ 794 , 223 , 947 , 294 }
{ 264 , 188 , 377 , 391 }
Returns: "none"
{ 414 , 350 , 842 , 868 }
{ 253 , 182 , 331 , 358 }
Returns: "none"
{ 691 , 864 , 792 , 987 }
{ 88 , 544 , 455 , 586 }
Returns: "none"
{0, 0, 3, 2 }
{1, 1, 5, 3 }
Returns: "rectangle"
{3, 3, 5, 5 }
{5, 1, 7, 3 }
Returns: "point"
{0, 0, 3, 2 }
{0, 0, 3, 2 }
Returns: "rectangle"
{0, 0, 1, 1 }
{1, 1, 5, 2 }
Returns: "point"
{0, 0, 5, 5 }
{0, 0, 5, 5 }
Returns: "rectangle"
{1, 1, 2, 2 }
{1, 1, 2, 2 }
Returns: "rectangle"
{0, 101, 101, 102 }
{0, 0, 1, 100 }
Returns: "none"
{0, 0, 1, 1 }
{1, 0, 2, 1 }
Returns: "segment"
{0, 1, 1, 2 }
{1, 0, 2, 1 }
Returns: "point"
{0, 0, 2, 2 }
{1, 0, 2, 1 }
Returns: "rectangle"
{1, 2, 3, 4 }
{1, 2, 3, 4 }
Returns: "rectangle"
{2, 2, 8, 8 }
{0, 0, 10, 10 }
Returns: "rectangle"
{0, 0, 2, 2 }
{0, 0, 2, 2 }
Returns: "rectangle"
{2, 6, 7, 8 }
{1, 2, 3, 4 }
Returns: "none"
{1, 1, 5, 5 }
{1, 2, 5, 4 }
Returns: "rectangle"
{2, 2, 3, 3 }
{1, 3, 2, 4 }
Returns: "point"
{2, 2, 8, 3 }
{3, 1, 4, 5 }
Returns: "rectangle"
{0, 0, 3, 3 }
{1, 1, 3, 3 }
Returns: "rectangle"
{0, 0, 1, 1 }
{50, 1, 51, 2 }
Returns: "none"
{2, 3, 4, 4 }
{1, 1, 5, 5 }
Returns: "rectangle"
{1, 1, 6, 2 }
{3, 2, 6, 6 }
Returns: "segment"
{1, 1, 2, 2 }
{3, 1, 4, 2 }
Returns: "none"
{11, 11, 22, 22 }
{12, 0, 15, 11 }
Returns: "segment"
{1, 999, 2, 1000 }
{2, 999, 3, 1000 }
Returns: "segment"
{3, 4, 10, 100 }
{3, 4, 10, 100 }
Returns: "rectangle"
{0, 1, 1, 3 }
{1, 0, 2, 1 }
Returns: "point"
{0, 0, 4, 4 }
{1, 5, 2, 6 }
Returns: "none"
{23, 567, 95, 999 }
{0, 23, 555, 24 }
Returns: "none"
{0, 0, 1, 1 }
{2, 1, 5, 3 }
Returns: "none"
{1, 1, 2, 2 }
{0, 0, 1, 1 }
Returns: "point"
{1, 3, 2, 6 }
{2, 1, 4, 3 }
Returns: "point"
{100, 100, 200, 200 }
{0, 200, 100, 300 }
Returns: "point"
{1, 0, 2, 1 }
{0, 1, 1, 2 }
Returns: "point"
{0, 0, 1, 1 }
{5, 1, 6, 2 }
Returns: "none"
{2, 2, 3, 3 }
{1, 1, 4, 4 }
Returns: "rectangle"
{0, 1, 3, 2 }
{1, 0, 2, 1 }
Returns: "segment"
{1, 2, 2, 3 }
{2, 1, 3, 2 }
Returns: "point"
{0, 0, 3, 3 }
{3, 4, 6, 6 }
Returns: "none"
{2, 2, 10, 10 }
{2, 2, 10, 10 }
Returns: "rectangle"
{2, 2, 7, 7 }
{1, 7, 2, 9 }
Returns: "point"
{1, 1, 2, 2 }
{2, 0, 3, 1 }
Returns: "point"
{1, 1, 2, 2 }
{0, 0, 3, 3 }
Returns: "rectangle"
{2, 2, 4, 4 }
{1, 2, 2, 3 }
Returns: "segment"
{0, 0, 1, 1 }
{0, 0, 1, 1 }
Returns: "rectangle"
{100, 100, 103, 102 }
{103, 90, 105, 100 }
Returns: "point"
{1, 1, 2, 2 }
{1, 2, 2, 3 }
Returns: "segment"
{2, 1, 3, 2 }
{1, 2, 2, 3 }
Returns: "point"
{0, 0, 3, 2 }
{10, 10, 52, 52 }
Returns: "none"
{10, 10, 20, 20 }
{8, 12, 22, 14 }
Returns: "rectangle"
{0, 3, 1, 4 }
{1, 2, 2, 3 }
Returns: "point"