我正在尝试在面板中绘制Arc2D对象。但是我不确定如何计算它。 我给出的是启动Point2D和结束Point2D和半径。 问题是当半径改变时,startAngle和AngleExtent参数每次都不同。 另一个问题是,由于半径变化,包含弧的'将来'圆的中心每次都在不同的点,另一个参数根据输入而变化,所以我不能使用(或者不知道如何使用setCenter()方法。
感谢任何帮助!
答案 0 :(得分:1)
两个点和一个半径定义两个弧(2D)。您可以通过计算以两点为中心的两个Circle
半径r
的交点(java.awt.geom.Area.intersects)找到它们的中心点。弧形圆圈的中心点将是两个初始点之间中间区域的点。
答案 1 :(得分:0)
你需要的不仅仅是那个。你需要两个点,半径和凹度。
想象两个端点处有两个圆,每个圆的半径为半径。它们在两个不同的点相交(假设可以绘制)。其中一个是你的中心点,你可以通过了解凹陷来选择哪一个(即弧线上升或下降)。
使用您选择的中心点并从一个端点移动到另一个端点来绘制弧。
您可以在此处找到查找两个圆的交点的公式: http://mathworld.wolfram.com/Circle-CircleIntersection.html
请注意,您最好有两个交叉点。如果有零或无穷大,则不能很好地在它们之间绘制弧线(要么弧线不会跨越,要么弧线长度为零)。