Вычислить площадь пересечения между кругом и треугольником? - PullRequest
18 голосов
/ 12 февраля 2009

Как рассчитать площадь пересечения между треугольником (заданным как три (X, Y) пары) и окружностью (X, Y, R)? Я сделал некоторые поиски безрезультатно. Это для работы, а не для школы. :)

Это будет выглядеть примерно так в C #:

struct { PointF vert[3]; } Triangle;
struct { PointF center; float radius; } Circle;

// returns the area of intersection, e.g.:
// if the circle contains the triangle, return area of triangle
// if the triangle contains the circle, return area of circle
// if partial intersection, figure that out
// if no intersection, return 0
double AreaOfIntersection(Triangle t, Circle c)
{
 ...
}

Ответы [ 11 ]

0 голосов
/ 12 февраля 2009

Насколько точным ты должен быть? Если вы можете приблизить круг с более простыми формами, вы можете упростить задачу. Например, было бы несложно смоделировать круг как набор очень узких треугольников, встречающихся в центре.

...