0

我正在尝试在面板内绘制 Arc2D 对象。但是我不确定如何计算它。我给出的是起点 Point2D 和终点 Point2D 和半径。问题是半径变化时,startAngle和AngleExtent参数每次都不一样。另一个问题是,由于半径发生变化,包含圆弧的“待”圆的中心每次都在不同的点,另一个参数根据输入而变化,所以我不能使用(或不知道如何)使用 setCenter() 方法。

任何帮助表示赞赏!

4

2 回答 2

1

两个点和一个半径定义了两个弧(二维)。Circle您可以通过计算以您的两个点为中心的两个半径的交点 (java.awt.geom.Area.intersects) 来找到它们的中心点r。圆弧的中心点将是您的两个初始点之间该区域周长上的点。

于 2012-07-08T23:30:10.510 回答
0

你需要的不仅仅是这些。你需要两个点,半径和凹度。

想象在两个端点处有两个圆,每个圆都有一个半径。它们在两个不同的点相交(假设可以绘制)。其中之一是您的中心点,您可以通过了解凹度来选择哪一个(即圆弧是向上还是向下)。

您使用您选择的中心点绘制弧线并从一个端点到另一个端点。

你可以在这里找到找到两个圆的交点的公式:http: //mathworld.wolfram.com/Circle-CircleIntersection.html

请注意,您最好有两个交点。如果有零或无穷大,你不能很好地在它们之间画一条弧(你的弧不会跨越,或者你的弧的长度为零)。

于 2012-07-08T23:37:51.487 回答