Input:
Action, field calculator, python:
!Shape!.convexHull()
Output:
Please note that above is not solution for OP.
Possible workaround:
Inputs:
Output and "prove":
As one can see definition of "opposite" sites is crucial. It is near obvious in your example though.
I have my own script to create axis, it is untidy and I don't want to share it.
Let me know if you are struggling with axis drawing, I'll post raster solution
Raster solution to get axis:
@Aaron
Create empty polyline feature class, start editing it, select original polygon, copy/paste it to the line.
All this is because of Basic type license, so that you cannot use feature to line tool.
You need this line for 1st step:
arcpy.gp.EucDistance_sa("Converted_Graphics_2", "D:/Scratch/distance", "", "20", "")
This shows hillshade of above distance raster:
arcpy.gp.Slope_sa("distance", "D:/Scratch/slope", "DEGREE", "1")
arcpy.gp.RasterCalculator_sa("""Con("distance" == 0,200,"slope")""", "D:/Scratch/cost")
arcpy.SelectLayerByAttribute_management("Source_Dest", "NEW_SELECTION", "Name" = 'A')
arcpy.gp.CostBackLink_sa("Source_Dest", "cost", "D:/Scratch/blink", "", "")
arcpy.gp.RasterCalculator_sa("""Int(Power(2,"blink"-1))""", "D:/Scratch/flowdir")
arcpy.SelectLayerByAttribute_management("Source_Dest", "NEW_SELECTION","Name" = 'B')
arcpy.gp.CostPath_sa("Source_Dest", "flowdir", "flowdir", "D:/Scratch/path", "EACH_CELL", "FID")
arcpy.gp.StreamToFeature_sa("path", "flowdir", "D:/Scratch/axis.shp", "SIMPLIFY")
Result shows AXIS created at the last step by blue arrows line: