Home > matGeom > geom3d > Contents.m

Contents

PURPOSE ^

GEOM3D Geometry 3D Toolbox

SYNOPSIS ^

This is a script file.

DESCRIPTION ^

 GEOM3D Geometry 3D Toolbox
 Version 1.22 06-Jun-2018 .

   Creation, transformations, algorithms and visualization of geometrical
   3D primitives, such as points, lines, planes, polyhedra, circles and
   spheres.
   
   Euler Angles are defined as follow:
   PHI is the azimut, i.e. the angle of the projection on horizontal plane
   with the Ox axis, with value beween 0 and 180 degrees.
   THETA is the latitude, i.e. the angle with the Oz axis, with value
   between -90 and +90 degrees.
   PSI is the 'roll', i.e. the rotation around the (PHI, THETA) direction,
   with value in degrees
   See also the 'angles3d' page.

   Base format for primitives:
   Point:      [x0 y0 z0]
   Vector:     [dx dy dz]
   Line:       [x0 y0 z0 dx dy dz]
   Edge:       [x1 y1 z1 x2 y2 z2]
   Plane:      [x0 y0 z0 dx1 dy1 dz1 dx2 dy2 dz2]
   Sphere:     [x0 y0 z0 R]
   Circle:     [x0 y0 z0 R PHI THETA PSI] (origin+center+normal+'roll').
   Ellipsoid:  [x0 y0 z0 A B C PHI THETA PSI]
   Cylinder:   [X1 Y1 Z1 X2 Y2 Z2 R]
   Box:        [xmin xmax ymin ymax zmin zmax]. Used for clipping shapes.

   Polygons are represented by N-by-3 array of points, the last point is
   not necessarily the same as the first one. Points must be coplanar.


 3D Points
   points3d                    - Description of functions operating on 3D points.
   midPoint3d                  - Middle point of two 3D points or of a 3D edge.
   isCoplanar                  - Tests input points for coplanarity in 3-space.
   transformPoint3d            - Transform a point with a 3D affine transform.
   distancePoints3d            - Compute euclidean distance between pairs of 3D Points.
   clipPoints3d                - Clip a set of points by a box or other 3d shapes.
   drawPoint3d                 - Draw 3D point on the current axis.

 3D Vectors
   vectors3d                   - Description of functions operating on 3D vectors.
   transformVector3d           - Transform a vector with a 3D affine transform.
   normalizeVector3d           - Normalize a 3D vector to have norm equal to 1.
   vectorNorm3d                - Norm of a 3D vector or of set of 3D vectors.
   hypot3                      - Diagonal length of a cuboidal 3D box .
   crossProduct3d              - Vector cross product faster than inbuilt MATLAB cross.
   vectorAngle3d               - Angle between two 3D vectors.
   isParallel3d                - Check parallelism of two 3D vectors.
   isPerpendicular3d           - Check orthogonality of two 3D vectors.
   drawVector3d                - Draw vector at a given position.

 Angles
   angles3d                    - Conventions for manipulating angles in 3D.
   anglePoints3d               - Compute angle between three 3D points.
   sphericalAngle              - Compute angle between points on the sphere.
   angleSort3d                 - Sort 3D coplanar points according to their angles in plane.
   randomAngle3d               - Return a 3D angle uniformly distributed on unit sphere.

 Coordinate transforms
   sph2cart2                   - Convert spherical coordinates to cartesian coordinates.
   cart2sph2                   - Convert cartesian coordinates to spherical coordinates.
   cart2sph2d                  - Convert cartesian coordinates to spherical coordinates in degrees.
   sph2cart2d                  - Convert spherical coordinates to cartesian coordinates in degrees.
   cart2cyl                    - Convert cartesian to cylindrical coordinates.
   cyl2cart                    - Convert cylindrical to cartesian coordinates.

 3D Lines and Edges
   lines3d                     - Description of functions operating on 3D lines.
   createLine3d                - Create a line with various inputs.
   createEdge3d                - Create an edge between two 3D points, or from a 3D line.
   fitLine3d                   - Fit a 3D line to a set of points.
   parallelLine3d              - Create 3D line parallel to another one.
   projPointOnLine3d           - Project a 3D point orthogonally onto a 3D line.
   distancePointLine3d         - Euclidean distance between 3D point and line.
   isPointOnLine3d             - Test if a 3D point belongs to a 3D line.
   linePosition3d              - Return the position of a 3D point projected on a 3D line.
   distanceLines3d             - Minimal distance between two 3D lines.
   transformLine3d             - Transform a 3D line with a 3D affine transform.
   reverseLine3d               - Return same 3D line but with opposite orientation.
   normalizeLine3d             - Normalizes the direction vector of a 3D line.
   clipLine3d                  - Clip a line with a box and return an edge.
   drawLine3d                  - Draw a 3D line clipped by the current axes.

 3D Edges and Rays
   edges3d                     - Description of functions operating on 3D edges.
   edgeLength3d                - Return the length of a 3D edge.
   clipEdge3d                  - Clip a 3D edge with a cuboid box.
   lineToEdge3d                - Convert a 3D straight line to a 3D finite edge.
   edgeToLine3d                - Convert a 3D edge to a 3D straight line.
   distancePointEdge3d         - Minimum distance between a 3D point and a 3D edge.
   drawEdge3d                  - Draw 3D edge in the current axes.
   createRay3d                 - Create a 3D ray.
   clipRay3d                   - Clip a 3D ray with a box and return a 3D edge.
   drawRay3d                   - Draw a 3D ray on the current axis.

 Planes
   planes3d                    - Description of functions operating on 3D planes.
   createPlane                 - Create a plane in parametrized form.
   fitPlane                    - Fit a 3D plane to a set of points.
   normalizePlane              - Normalize parametric representation of a plane.
   parallelPlane               - Parallel to a plane through a point or at a given distance.
   reversePlane                - Return same 3D plane but with opposite orientation.
   isPlane                     - Check if input is a plane.
   transformPlane3d            - Transform a 3D plane with a 3D affine transform.
   planesBisector              - Bisector plane between two other planes.
   projPointOnPlane            - Return the orthogonal projection of a point on a plane.
   intersectPlanes             - Return intersection line between 2 planes in space.
   intersectThreePlanes        - Return intersection point between 3 planes in space.
   intersectLinePlane          - Intersection point between a 3D line and a plane.
   intersectEdgePlane          - Return intersection point between a plane and a edge.
   distancePointPlane          - Signed distance betwen 3D point and plane.
   projLineOnPlane             - Return the orthogonal projection of a line on a plane.
   isBelowPlane                - Test whether a point is below or above a plane.
   medianPlane                 - Create a plane in the middle of 2 points.
   planeNormal                 - Compute the normal to a plane.
   planePosition               - Compute position of a point on a plane.
   planePoint                  - Compute 3D position of a point in a plane.
   dihedralAngle               - Compute dihedral angle between 2 planes.
   drawPlane3d                 - Draw a plane clipped by the current axes.

 3D Polygons and curves
   polygons3d                  - Description of functions operating on 3D polygons.
   polygonCentroid3d           - Centroid (or center of mass) of a polygon.
   polygonArea3d               - Area of a 3D polygon.
   polygon3dNormalAngle        - Normal angle at a vertex of the 3D polygon.
   intersectLinePolygon3d      - Intersection point of a 3D line and a 3D polygon.
   intersectRayPolygon3d       - Intersection point of a 3D ray and a 3D polygon.
   clipConvexPolygon3dHP       - Clip a convex 3D polygon with Half-space.
   drawPolygon3d               - Draw a 3D polygon specified by a list of vertex coords.
   drawPolyline3d              - Draw a 3D polyline specified by a list of vertex coords.
   fillPolygon3d               - Fill a 3D polygon specified by a list of vertex coords.

 3D Triangles
   triangleArea3d              - Area of a 3D triangle.
   distancePointTriangle3d     - Minimum distance between a 3D point and a 3D triangle.
   intersectLineTriangle3d     - Intersection point of a 3D line and a 3D triangle.

 3D circles and ellipses
   circles3d                   - Description of functions operating on 3D circles.
   fitCircle3d                 - Fit a 3D circle to a set of points.
   fitEllipse3d                - Fit an ellipse to a set of points.
   circle3dPosition            - Return the angular position of a point on a 3D circle.
   circle3dPoint               - Coordinates of a point on a 3D circle from its position.
   circle3dOrigin              - Return the first point of a 3D circle.
   drawCircle3d                - Draw a 3D circle.
   drawCircleArc3d             - Draw a 3D circle arc.
   drawEllipse3d               - Draw a 3D ellipse.
   projPointOnCircle3d         - Project a 3D point onto a 3D circle.

 Spheres
   spheres                     - Description of functions operating on 3D spheres.
   createSphere                - Create a sphere containing 4 points.
   fitSphere                   - Fit a sphere to 3D points using the least squares approach.
   intersectLineSphere         - Return intersection points between a line and a sphere.
   intersectPlaneSphere        - Return intersection circle between a plane and a sphere.
   drawSphere                  - Draw a sphere as a mesh.
   drawSphericalEdge           - Draw an edge on the surface of a sphere.
   drawSphericalTriangle       - Draw a triangle on a sphere.
   fillSphericalTriangle       - Fill a triangle on a sphere.
   drawSphericalPolygon        - Draw a spherical polygon.
   fillSphericalPolygon        - Fill a spherical polygon.
   sphericalVoronoiDomain      - Compute a spherical voronoi domain.

 Smooth surfaces
   equivalentEllipsoid         - Equivalent ellipsoid of a set of 3D points.
   isPointInEllipsoid          - Check if a point is located inside a 3D ellipsoid.
   ellipsoidSurfaceArea        - Approximated surface area of an ellipsoid.
   oblateSurfaceArea           - Approximated surface area of an oblate ellipsoid.
   prolateSurfaceArea          - Approximated surface area of a prolate ellipsoid.
   cylinderSurfaceArea         - Surface area of a cylinder.
   intersectLineCylinder       - Compute intersection points between a line and a cylinder.
   revolutionSurface           - Create a surface of revolution from a planar curve.
   surfaceCurvature            - Curvature on a surface from angle and principal curvatures.
   drawEllipsoid               - Draw a 3D ellipsoid.
   drawTorus                   - Draw a torus (3D ring).
   drawCylinder                - Draw a cylinder.
   drawEllipseCylinder         - Draw a cylinder with ellipse cross-section.
   drawCapsule                 - Draw a capsule.
   drawDome                    - Draw a dome (half-sphere, semi-sphere) as a mesh.
   drawSurfPatch               - Draw a 3D surface patch, with 2 parametrized surfaces.

 Bounding boxes management
   boxes3d                     - Description of functions operating on 3D boxes.
   boundingBox3d               - Bounding box of a set of 3D points.
   orientedBox3d               - Object-oriented bounding box of a set of 3D points.
   intersectBoxes3d            - Intersection of two 3D bounding boxes.
   mergeBoxes3d                - Merge 3D boxes, by computing their greatest extent.
   box3dVolume                 - Volume of a 3-dimensional box.
   randomPointInBox3d          - Generate random point(s) within a 3D box.
   drawBox3d                   - Draw a 3D box defined by coordinate extents.

 Geometric transforms
   transforms3d                - Conventions for manipulating 3D affine transforms.
   fitAffineTransform3d        - Compute the affine transform that best register two 3D point sets.
   registerPoints3dAffine      - Fit 3D affine transform using iterative algorithm.
   createTranslation3d         - Create the 4x4 matrix of a 3D translation.
   createScaling3d             - Create the 4x4 matrix of a 3D scaling.
   createRotationOx            - Create the 4x4 matrix of a 3D rotation around x-axis.
   createRotationOy            - Create the 4x4 matrix of a 3D rotation around y-axis.
   createRotationOz            - Create the 4x4 matrix of a 3D rotation around z-axis.
   createBasisTransform3d      - Compute matrix for transforming a basis into another basis.
   eulerAnglesToRotation3d     - Convert 3D Euler angles to 3D rotation matrix.
   isTransform3d               - Check if input is a affine transformation matrix.
   rotation3dToEulerAngles     - Extract Euler angles from a rotation matrix.
   createRotation3dLineAngle   - Create rotation around a line by an angle theta.
   rotation3dAxisAndAngle      - Determine axis and angle of a 3D rotation matrix.
   createRotationVector3d      - Calculates the rotation between two vectors.
   createRotationVectorPoint3d - Calculates the rotation between two vectors.
   createRotationAboutPoint3d  - Rotate about a point using a rotation matrix.
   recenterTransform3d         - Change the fixed point of an affine 3D transform.
   composeTransforms3d         - Concatenate several space transformations.

 Various drawing Functions
   drawGrid3d                  - Draw a 3D grid on the current axis.
   drawAxis3d                  - Draw a coordinate system and an origin.
   drawAxisCube                - Draw a colored cube representing axis orientation.
   drawCube                    - Draw a 3D centered cube, eventually rotated.
   drawCuboid                  - Draw a 3D cuboid, eventually rotated.
   drawPlatform                - Draw a rectangular platform with a given size.
   drawLabels3d                - Draw text labels at specified 3D positions.
   drawArrow3d                 - plot a quiver of 3D arrows.
   drawAngleBetweenVectors3d   - Draw an arc between 2 vectors.


   Credits:
   * Several functions contributed by Sven Holcombe
   * function isCoplanar was originally written by Brett Shoelson.
   * Songbai Ji enhanced file intersectPlaneLine (6/23/2006).
   * several functions contributed by oqilipo


 ------
 Author: David Legland
 e-mail: david.legland@inra.fr
 Created: 2005-11-07
 Homepage: http://github.com/mattools/matGeom
 http://www.pfl-cepia.inra.fr/index.php?page=geom3d
 Copyright 2005 INRA

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:
Generated on Wed 16-Feb-2022 15:10:47 by m2html © 2003-2019