Source code for gmshModel.Geometry.DistanceCalculations

import numpy as np


[docs] def distancePointPoint(P1,P2): """Calculate the distance between to points P1 and P2""" distVec=np.atleast_2d(P2)-np.atleast_2d(P1) dist=np.linalg.norm(distVec,axis=1) return dist, distVec
[docs] def distancePointLine(P,A,B,finiteLine=True): """Calculate the distance between a point P and a line defined by points A and B. If A and B are the starting and ending points of the line, i.e., the line is finite, set finiteLine flag to True.""" distAB, AB = distancePointPoint(A,B) PA = np.atleast_2d(P)-np.atleast_2d(A) PB = np.atleast_2d(P)-np.atleast_2d(B) distVec=np.cross(PA,PB)/(distAB) if finiteLine: clostestPointIsA=np.where(np.dot(AB,-PA.T) < 0) clostestPointIsB=np.where(np.dot(AB,PB.T) < 0) distVec[clostestPointIsA]=PA[clostestPointIsA] distVec[clostestPointIsB]=PA[clostestPointIsB] return np.linalg.norm(distVec,axis=1), distVec
[docs] def distanceLineLine(A1,B1,A2,B2,finiteLine=True): """Calculate the distance between two lines each defined by points A_i and B_i. If A_i and B_i are the starting and end points of the lines, i.e., the lines are finite, set finiteLine flag to True""" pass