Thu Dec 22 16:45:23 2022 quadrilateral_test(): Python version: 3.6.9 quadrilateral() contains functions for geometric computations involving quadrilaterals. i4_wrap_test(): i4_wrap() forces an integer to lie within given limits. ILO = 4 IHI = 8 I i4_wrap(I) -10 5 -9 6 -8 7 -7 8 -6 4 -5 5 -4 6 -3 7 -2 8 -1 4 0 5 1 6 2 7 3 8 4 4 5 5 6 6 7 7 8 8 9 4 10 5 11 6 12 7 13 8 14 4 15 5 16 6 17 7 18 8 19 4 20 5 polygon_angles_test(): polygon_angles() computes the angles of a polygon. Number of polygonal vertices = 6 polygon vertices: [[0. 0.] [1. 0.] [2. 1.] [3. 0.] [3. 2.] [1. 1.]] Polygonal angles in degrees: 0 45 1 135 2 270 3 45 4 63.4349 5 161.565 quadrilateral_angles_test(): quadrilateral_angles() returns the angles of a quadrilateral in radians. quadrilateral vertices: [[0. 0.] [1. 0.] [1. 1.] [0. 1.]] angles: [1.57079633 1.57079633 1.57079633 1.57079633] Angles sum to 6.283185307179586 quadrilateral vertices: [[0. 0.] [1. 0.] [2. 1.] [0. 1.]] angles: [1.57079633 2.35619449 0.78539816 1.57079633] Angles sum to 6.283185307179586 quadrilateral vertices: [[0. 0. ] [1. 0. ] [0.25 0.25] [0. 1. ]] angles: [1.57079633 0.32175055 4.06888787 0.32175055] Angles sum to 6.283185307179586 quadrilateral vertices: [[ 0. 0. ] [ 1. 0. ] [-0.5 0.5] [ 0. 1. ]] angles: [1.57079633 0.32175055 5.17603659 5.49778714] Angles sum to 12.566370614359172 quadrilateral_area_test(): quadrilateral_area() finds the area of a quadrilateral quadrilateral_area2() finds the area of a quadrilateral quadrilateral vertices: [[0. 0.] [1. 0.] [1. 1.] [0. 1.]] quadrilateral_area area is = 1.0 quadrilateral_area2 area = 1.0 quadrilateral_area_3d_test(): quadrilateral_area_3d() finds the area of a quadrilateral in 3D. quadrilateral vertices: [[2. 2. 0.] [0. 0. 0.] [1. 1. 1.] [3. 3. 1.]] Area is 2.8284271247461903 Area by 2 calls to triangle_area_3d() = 2.8284271247461903 quadrilateral_contains_point_test() quadrilateral_contains_point() tells if a point is inside a quadrilateral. quadrilateral vertices: [[0. 0.] [1. 0.] [1. 1.] [0. 1.]] P Contains Dist Dist Signed Unsigned 0.250000 0.250000 True 0.750000 0.250000 True 1.000000 1.000000 True 11.000000 0.500000 False 0.000000 0.500000 True 0.500000 -10.000000 False 2.000000 2.000000 False quadrilateral_is_convex_test(): quadrilateral_is_convex() is true if a quadrilateral is convex. quadrilateral vertices: [[ 1.6662636 1.02444221] [-0.69698735 -0.55841743] [ 0.41129026 0.06584573] [ 0.95793761 0.29611801]] quadrilateral_is_convex ( q ) = False quadrilateral vertices: [[-0.08321539 -0.66915469] [ 1.25244328 0.73910127] [-0.50322479 0.25795848] [-0.95498619 -1.34836892]] quadrilateral_is_convex ( q ) = True quadrilateral vertices: [[ 0.06884583 -0.83378371] [-0.50130746 0.27572226] [ 0.08685977 -1.47627482] [ 0.87304151 -0.62044825]] quadrilateral_is_convex ( q ) = False quadrilateral vertices: [[-0.20223541 -0.21576474] [-0.77352289 -1.52708458] [ 0.7620796 -0.47759208] [-2.42130361 1.89245561]] quadrilateral_is_convex ( q ) = False quadrilateral vertices: [[-0.82744091 -1.78187137] [ 0.95260085 1.3926924 ] [-0.98733553 -0.66221168] [-1.75050018 0.30975893]] quadrilateral_is_convex ( q ) = False quadrilateral_is_simple_test(): quadrilateral_is_simple() is true if a quadrilateral is "simple", that is, non-degenerate. quadrilateral vertices: [[0. 0.] [1. 0.] [1. 1.] [0. 1.]] quadrilateral_is_simple ( q ) = True quadrilateral vertices: [[0. 0.] [1. 0.] [2. 1.] [0. 1.]] quadrilateral_is_simple ( q ) = True quadrilateral vertices: [[0. 0. ] [1. 0. ] [0.25 0.25] [0. 1. ]] quadrilateral_is_simple ( q ) = True quadrilateral vertices: [[ 0. 0. ] [ 1. 0. ] [-0.5 0.5] [ 0. 1. ]] quadrilateral_is_simple ( q ) = False quadrilateral_perimeter_test(): quadrilateral_perimeter() computes the perimeter of a quadrilateral. quadrilateral: [[0. 0.] [1. 0.] [1. 1.] [0. 1.]] quadrilateral_perimeter = 4.0 quadrilateral: [[0. 0.] [1. 0.] [2. 1.] [0. 1.]] quadrilateral_perimeter = 5.414213562373095 quadrilateral: [[0. 0. ] [1. 0. ] [0.25 0.25] [0. 1. ]] quadrilateral_perimeter = 3.58113883008419 quadrilateral: [[ 0. 0. ] [ 1. 0. ] [-0.5 0.5] [ 0. 1. ]] quadrilateral_perimeter = 4.288245611270738 quadrilateral_point_dist_signed_test(): quadrilateral_point_dist_signed() computes the signed distance from a point to a quadrilateral. quadrilateral vertices: [[0. 0.] [1. 0.] [1. 1.] [0. 1.]] P Dist ( 0.250000 0.250000 ) -0.250000 ( 0.750000 0.250000 ) -0.250000 ( 1.000000 1.000000 ) 0.000000 ( 11.000000 0.500000 ) 10.000000 ( 0.000000 0.500000 ) 0.000000 ( 0.500000 -10.000000 ) 10.000000 ( 2.000000 2.000000 ) 1.000000 quadrilateral_point_dist_test() quadrilateral_point_dist() computes the distance from a point to a quadrilateral. quadrilateral vertices: [[0. 0.] [1. 0.] [1. 1.] [0. 1.]] P Dist ( 0.250000 0.250000 ) 0.250000 ( 0.750000 0.250000 ) 0.250000 ( 1.000000 1.000000 ) 0.000000 ( 11.000000 0.500000 ) 10.000000 ( 0.000000 0.500000 ) 0.000000 ( 0.500000 -10.000000 ) 10.000000 ( 2.000000 2.000000 ) 1.414214 quadrilateral_point_near_test() quadrilateral_point_near() computes the nearest quadrilateral point to a given point. quadrilateral vertices: [[0. 0.] [1. 0.] [1. 1.] [0. 1.]] P1 P2 ( 0.250000 0.250000) ( 0.250000 0.000000) ( 0.750000 0.250000) ( 0.750000 0.000000) ( 1.000000 1.000000) ( 1.000000 1.000000) ( 11.000000 0.500000) ( 1.000000 0.500000) ( 0.000000 0.500000) ( 0.000000 0.500000) ( 0.500000 -10.000000) ( 0.500000 0.000000) ( 2.000000 2.000000) ( 1.000000 1.000000) quadrilateral_random_test(): quadrilateral_random() returns a random quadrilateral within the unit square. quadrilateral vertices: [[ 0.84681482 2.69775412] [-1.65679645 -0.35839344] [ 1.13892122 -0.46810911] [-1.35037102 -0.85044353]] quadrilateral_is_simple ( q ) = False quadrilateral_is_convex ( q ) = False angles (in degrees): [ 7.5570573 52.92286858 349.02071188 310.49936224] Angle sum = 720.0 Area = 0.41318501981649947 Perimeter = 13.440469928301246 quadrilateral vertices: [[-0.61292688 0.37510997] [ 1.76967688 0.01675934] [-0.98699442 1.07292777] [-0.04126734 -0.62126205]] quadrilateral_is_simple ( q ) = False quadrilateral_is_convex ( q ) = False angles (in degrees): [308.39800665 12.41008153 39.8655383 359.32637352] Angle sum = 720.0 Area = 0.7511861050348423 Perimeter = 8.450468942094005 quadrilateral vertices: [[ 0.12923462 -0.28 ] [-1.95992441 0.83226973] [ 0.62963068 -0.95877739] [ 0.56757332 0.39945346]] quadrilateral_is_simple ( q ) = True quadrilateral_is_convex ( q ) = False angles (in degrees): [265.20342089 6.63852418 52.71459088 35.44346405] Angle sum = 360.0 Area = 0.7495143740017276 Perimeter = 7.683616946114198 quadrilateral vertices: [[ 1.01949173 1.35703342] [-2.47962011 0.22524536] [-0.98233019 -1.95483844] [ 1.0332071 -1.21561502]] quadrilateral_is_simple ( q ) = True quadrilateral_is_convex ( q ) = True angles (in degrees): [ 72.38164812 73.44237673 104.34028767 109.83568748] Angle sum = 360.00000000000006 Area = 7.259189730686375 Perimeter = 11.041843079914576 quadrilateral vertices: [[-1.90549594 -0.9886106 ] [ 1.30673919 -0.38008426] [-0.75904461 1.22069649] [-0.26504218 -1.57714035]] quadrilateral_is_simple ( q ) = False quadrilateral_is_convex ( q ) = False angles (in degrees): [329.53702149 48.49919418 42.21453807 299.74924627] Angle sum = 720.0 Area = 1.050090588264729 Perimeter = 10.466730218189849 quadrilateral_random_convex_test(): quadrilateral_random_convex() returns a random convex quadrilateral. quadrilateral vertices: [array([-0.92923417, -0.4428206 , -0.10818552, -0.15628379]), array([ 1.72031318, -0.21892856, -0.06036642, 0.67511486])] quadrilateral_random_simple_test() quadrilateral_random_simple() returns a random simple quadrilateral. quadrilateral vertices: [[-0.95787952 1.54967202] [-0.25028724 -1.47731276] [ 0.46973914 0.69026443] [-0.26098268 -0.46447144]] angles in degrees: [ 5.92841998 31.53275076 13.95033491 308.58849435] Angle sum = 360.0 Area = 0.7183797130948566 Perimeter = 8.890443614712316 quadrilateral vertices: [[-0.77871817 -0.12769619] [-2.37510621 -2.05509322] [ 1.48091776 -0.86865757] [ 2.52848496 0.28535417]] angles in degrees: [136.75267698 33.26409086 149.3342291 40.64900305] Angle sum = 360.00000000000006 Area = 4.460965343810329 Perimeter = 11.428549107311861 quadrilateral vertices: [[ 0.29648362 0.68198522] [-1.83222537 -1.15066496] [-0.06346162 -1.99917253] [ 1.45221359 -1.91148931]] angles in degrees: [ 73.29333526 66.35371634 151.06120991 69.2917385 ] Angle sum = 360.0 Area = 4.539977044000787 Perimeter = 9.128217001656452 quadrilateral vertices: [[ 0.53803436 -1.04188252] [ 1.55742525 1.1829668 ] [-0.64135762 -2.19131479] [ 1.49420518 -1.69081799]] angles in degrees: [260.45249115 8.47296442 43.72057451 47.35396992] Angle sum = 360.0 Area = 1.658325777263151 Perimeter = 9.823739029505537 quadrilateral vertices: [[-0.68588293 -1.6006852 ] [ 0.27144446 -0.4711791 ] [-0.34593424 1.06839541] [-0.53223845 1.20181106]] angles in degrees: [ 37.14531999 117.86554509 147.45818537 57.53094956] Angle sum = 360.0 Area = 1.3569126452590863 Perimeter = 6.175229755035464 segment_point_dist_test(): segment_point_dist() computes the distance from a point to a line segment. segment endpoint p1: [1. 2.] segment endpoint p2: [3. 4.] test point p: [2. 3.] Distance to segment = 0 test point p: [4. 5.] Distance to segment = 1.41421 test point p: [1. 4.] Distance to segment = 1.41421 test point p: [0. 0.] Distance to segment = 2.23607 segment_point_near_test(): segment_point_near() computes the nearest point from a line segment to a point in 2D. TEST = 0 P1 = 0.283249 0.110839 P2 = 0.284882 0.179865 P = 0.300833 0.308730 PN = 0.284882 0.179865 DIST = 0.129848 T = 1.000000 TEST = 1 P1 = 0.804824 0.356475 P2 = 0.289026 0.709250 P = 0.438558 0.359149 PN = 0.554039 0.527997 DIST = 0.204562 T = 0.486207 TEST = 2 P1 = 0.220740 0.211659 P2 = 0.908735 0.828109 P = 0.304531 0.573725 PN = 0.447165 0.414538 DIST = 0.213740 T = 0.329108 triangle_area_test(): triangle_area() computes the area of a triangle. Triangle vertices: [[0. 1.] [0. 0.] [1. 0.]] Triangle area is 0.5 triangle_area_3d(): triangle_area_3d() computes the area of a triangle in 3D. Triangle vertices: [[1. 2. 3. ] [2.4142137 3.4142137 3. ] [1.7071068 2.7071068 4. ]] Computed area is 1.0000000973169176 quadrilateral_test(): Normal end of execution. Thu Dec 22 16:45:24 2022