I have created this set of spheres in Mathematica.
The code I used to produced this is as follows:
satnum=Input["Select Number of Satellites"]
alt=Input["Select an orbit altitude (km)"]
sensorstr=Input["Select sensor strength (km)"]
Graphics3D[{Opacity[1],Sphere[{0,0,0},6371]}]
spacing=2pi/(satnum)
angles=-Range[-pi,pi-.000000001,spacing]
radius=ConstantArray[6371+alt,satnum]
centroids=Transpose[{radius,angles}]
cartcentroids=FromPolarCoordinates[centroids]
zdim=ConstantArray[0,satnum]
cartcentroids=Transpose[{cartcentroids,zdim}]
cartcentroids=Flatten[cartcentroids]
cartcentroids=Partition[cartcentroids,3]
Graphics3D[{Sphere[cartcentroids,sensorstr],Opacity[.2],Sphere[{0,0,0},7571]}]
Basically I want to draw a circle of a given radius r around the transparent sphere in the middle and count how many solid spheres contain a point at a given angle (once a starting point is defined). In this case the # of containing spheres would always be 1 or 2 as long as the circle has a small enough radius. I've looked into functions such as RegionIntersection or Surface Intersection, but I can't seem to figure out exactly how I should approach this problem.
Thanks for any help.
RegionMember
. You should simply check if a given point is a member of each of the spheres. $\endgroup$