For the more general case, I would wager it has something to do with vector projection, which you can use to find the length of a "shadow" cast by a line.
http://en.wikipedia.org/wiki/Vector_projection

Your case would be a 3d generalization of it, but I'm sure that has been done somewhere...

Kevin Gullikson

On Mon, Oct 1, 2012 at 10:03 AM, Robert Kern <robert.kern@gmail.com> wrote:
On Mon, Oct 1, 2012 at 10:34 AM, Lorenzo Isella
<lorenzo.isella@gmail.com> wrote:
> Dear All,
> I hope this is not too off-topic.
> I need to know if there is already some ready-to-use SciPy algorithm
> (or at least if this is easy to implement or not).
> Consider a dimer, i.e. 2 spheres with a single contact point. This
> dimer can have any orientation in the  3D and I have the (x,y,z)
> coordinates of the centre of the 2 spheres.
> For a given orientation, I want to project the dimer on, let's say,
> the xy plane and evaluate the area of the surface of its projection.
> I spoke about a dimer since it is easy to start discussing a simple
> case, but in general I will deal with objects consisting of several
> non-overlapping spheres such that any sphere has at least a contact
> point with another sphere.

There is nothing implemented in scipy for this. For the case of
spheres projected (orthographically?) onto a plane, the shadows are
probably-overlapping circles (the contact point is irrelevant). It
looks like there is an analytical solution to the area of the
intersection for circles:

  http://mathworld.wolfram.com/Circle-CircleIntersection.html

You can probably just add up the areas of each circle, then subtract
out one copy of each area of intersection to get the area of the
union.

--
Robert Kern
_______________________________________________
SciPy-User mailing list
SciPy-User@scipy.org
http://mail.scipy.org/mailman/listinfo/scipy-user