geometry¶
Function summary¶
eqn_of_plane(pts) |
Equation of plane defined by polygon points |
integrate_f_over_polygon_code(f) |
Generate code that will integrate a function over a polygon |
integrate_f_over_polyhedra_code(f) |
Generate code that will integrate a function over a polyhedra |
make_hexahedron(coords) |
Assemble the face vertices of a hexahedron |
polygon_2nd_moment_of_area(pts) |
2nd moment of area of polygon defined by points |
polygon_area(pts) |
Area of polygon defined by points |
polygon_centroid(pts) |
Centroid of polygon defined by points |
polyhedron_volume(faces) |
Volume of polyhedron defined by faces defined py pts |
replace_x0_and_x1_with_vect(s[, xyz]) |
Replaces strings x0 with x[:-1], x1 with x[1:], y0 with y[:-1] ... |
xyz_from_pts(pts[, close_polygon]) |
Extract x, y and z values from an (n, 3) or (n, 2) shaped array |
Module listing¶
Some routines loosely related to geometry.
-
geotecha.mathematics.geometry.eqn_of_plane(pts)[source]¶ Equation of plane defined by polygon points
a, b, c, d from a*x+b*y+c*z+d = 0 Looking at the plane, counter-clockwise (CCW) points the positive normal is towards you. For clockwise points (CW) the positive normal is away from you.
Parameters: pts : array_like
aAray of x, y or x, y, z points.
Returns: [a, b, c] : ndarray with 3 elements
Direction cosines of normal to plane.
d : float
Constant in plane equation.
-
geotecha.mathematics.geometry.integrate_f_over_polygon_code(f)[source]¶ Generate code that will integrate a function over a polygon
Parameters: f : sympy expression
Expression to be integrated over the polygon.
Returns: out : str
Multiline string of function code
-
geotecha.mathematics.geometry.integrate_f_over_polyhedra_code(f)[source]¶ Generate code that will integrate a function over a polyhedra
Parameters: f : sympy expression
Expression to be integrated over the polyhedron.
Returns: out : str
Multiline string of funciton code.
-
geotecha.mathematics.geometry.make_hexahedron(coords)[source]¶ Assemble the face vertices of a hexahedron
Parameters: coords : 8 by 3 ndarray
x, y, z coords of 8 corner nodes of hexahedron. node numbering is as per Smith and Grifiths.
Returns: faces : list of pts arrays
List of pts arrays. Each list defines vertices of a face.
Notes
Node numbering:
x (6)-------(7) ^ / /| | y / / | | / / / | |/ (2)-------(3) (8) |-------->x | | / | | / | | / (1)-------(4)
-
geotecha.mathematics.geometry.polygon_2nd_moment_of_area(pts)[source]¶ 2nd moment of area of polygon defined by points
Parameters: pts : array_like
Array of x, y or x, y, z points.
Returns: [Ixx, Iyy, Izz] : ndarray of float
2nd moment of area about centroidal x, y, and z axes.
-
geotecha.mathematics.geometry.polygon_area(pts)[source]¶ Area of polygon defined by points
Parameters: pts : array_like
Array of x, y or x, y, z points.
Returns: a : float
Area of polygon.
-
geotecha.mathematics.geometry.polygon_centroid(pts)[source]¶ Centroid of polygon defined by points
Parameters: pts : array_like
Array of x, y or x, y, z points.
Returns: [xc, yc, zc] : ndarray of float
Coordinates of centroid.
-
geotecha.mathematics.geometry.polyhedron_volume(faces)[source]¶ Volume of polyhedron defined by faces defined py pts
Parameters: faces : list
A list of pts arrays defining x,y,z coords of face vertices.
Returns: v : float
Volume of polyhedron.
Notes
I think points on a face have to be defined in anti clockwise (CCW) order to give a positive volume. No checks are done to check the order.
-
geotecha.mathematics.geometry.replace_x0_and_x1_with_vect(s, xyz=['x', 'y', 'z'])[source]¶ Replaces strings x0 with x[:-1], x1 with x[1:], y0 with y[:-1] ...
Parameters: s : string, or sympy_expression
Expression to make replacements on
xyz : list of strings
Replacements will be made for each element of xyz. default xyz=[‘x’,’y’,’z’].
Returns: out : string
string with all replacements made
-
geotecha.mathematics.geometry.xyz_from_pts(pts, close_polygon=False)[source]¶ Extract x, y and z values from an (n, 3) or (n, 2) shaped array
Parameters: pts : array_like
Array of x, y or x, y, z points.
close_polygon : boolean, optional
If True then 1st point will be repeated i.e. to close the polygon. Default close_polygon=False.
Returns: x, y, z : 1d ndarrays
1d array of x coords, y coords, z coords.
