さまざまな単純な形状 (ポリゴンと楕円) の結合から2 つjava.awt.geom.Area
の を作成した場合、2 つの領域間の距離 (つまり、最も近い距離) を見つける方法はありますか?
明確にするために: 2 つの任意の領域があり、それぞれが任意の種類の形状の結合から作成されているとします。
//Define the first area
Area a = new Area(new Ellipse2D.Double(50, 50, 100, 100));
a.add(new Area(new Rectangle2D.Double(100, 100, 100, 100)));
//Define the second area
Area b = new Area(new Ellipse2D.Double(200, 300, 100, 100));
b.add(new Area(new Ellipse2D.Double(250, 250, 100, 100)));
私が欲しいのは、getDistance(Area a, Area b)
領域 a の任意の点と領域 b の任意の点の間の最短距離を表す double を与えるメソッドです。これは、上記の 2 つのエリアの画像で、青色の線が関心のある距離を示しています。
これを行う方法はありますか?そうでない場合、どのように実装できますか?