def getRadialPath(begin, center, end, path):
 beginComplex = begin.dropAxis()
 endComplex = end.dropAxis()
 centerComplex = center.dropAxis()
 beginMinusCenterComplex = (beginComplex - centerComplex)
 endMinusCenterComplex = (endComplex - centerComplex)
 beginMinusCenterComplexRadius = abs(beginMinusCenterComplex)
 endMinusCenterComplexRadius = abs(endMinusCenterComplex)
 if ((beginMinusCenterComplexRadius == 0.0) or (endMinusCenterComplexRadius == 0.0)):
  return [begin]
 beginMinusCenterComplex /= beginMinusCenterComplexRadius
 endMinusCenterComplex /= endMinusCenterComplexRadius
 angleDifference = euclidean.getAngleDifferenceByComplex(endMinusCenterComplex, beginMinusCenterComplex)
 radialPath = []
 for point in path:
  weightEnd = point.x
  weightBegin = (1.0 - weightEnd)
  weightedRadius = ((beginMinusCenterComplexRadius * weightBegin) + ((endMinusCenterComplexRadius * weightEnd) * (1.0 + point.y)))
  radialComplex = ((weightedRadius * euclidean.getWiddershinsUnitPolar((angleDifference * point.x))) * beginMinusCenterComplex)
  polygonPoint = (center + Vector3(radialComplex.real, radialComplex.imag, point.z))
  radialPath.append(polygonPoint)
 return radialPath

def getRadialPath ( begin , center , end , path ) : beginComplex = begin . dropAxis ( ) endComplex = end . dropAxis ( ) centerComplex = center . dropAxis ( ) beginMinusCenterComplex = ( beginComplex - centerComplex ) endMinusCenterComplex = ( endComplex - centerComplex ) beginMinusCenterComplexRadius = abs ( beginMinusCenterComplex ) endMinusCenterComplexRadius = abs ( endMinusCenterComplex ) if ( ( beginMinusCenterComplexRadius == 0.0 ) or ( endMinusCenterComplexRadius == 0.0 ) ) : return [ begin ] beginMinusCenterComplex /= beginMinusCenterComplexRadius endMinusCenterComplex /= endMinusCenterComplexRadius angleDifference = euclidean . getAngleDifferenceByComplex ( endMinusCenterComplex , beginMinusCenterComplex ) radialPath = [ ] for point in path : weightEnd = point . x weightBegin = ( 1.0 - weightEnd ) weightedRadius = ( ( beginMinusCenterComplexRadius * weightBegin ) + ( ( endMinusCenterComplexRadius * weightEnd ) * ( 1.0 + point . y ) ) ) radialComplex = ( ( weightedRadius * euclidean . getWiddershinsUnitPolar ( ( angleDifference * point . x ) ) ) * beginMinusCenterComplex ) polygonPoint = ( center + Vector3 ( radialComplex . real , radialComplex . imag , point . z ) ) radialPath . append ( polygonPoint ) return radialPath
get radial path .