如何在java中绘制三点角的圆弧

如何在java中绘制三点角的圆弧,java,graphics,shape,shapes,Java,Graphics,Shape,Shapes,在java中,我有三个点表示两条带角度的直线。现在,我必须创建距离公共点约10像素的角度弧。在弧上显示角度。我能够计算角度,但如何绘制圆弧和在圆弧上显示角度。请告诉我一些代码视图或链接,我可以在那里找到解决方案。代码片段如下所示 public void paintComponent(Graphics g){ Graphics2D g2=(Graphics2D)g; Point p1=new Point(100,100); Point p2=new

在java中,我有三个点表示两条带角度的直线。现在,我必须创建距离公共点约10像素的角度弧。在弧上显示角度。我能够计算角度,但如何绘制圆弧和在圆弧上显示角度。请告诉我一些代码视图或链接,我可以在那里找到解决方案。代码片段如下所示

public void paintComponent(Graphics g){ Graphics2D g2=(Graphics2D)g; Point p1=new Point(100,100); Point p2=new Point(200,100); Point p3=new Point(100,0); Line2D line1=new Line2D.Double(p1, p2); Line2D line2=new Line2D.Double(p1, p3); g2.draw(line1); g2.draw(line2); double angle=getAngle(line1,line2); System.out.println(angle); //g2.drawArc(110, 100, 20, 20, 100, 30); } public double getAngle(Line2D line1,Line2D line2){ double angle1=Math.atan2(line1.getY1()-line1.getY2(), line1.getX1()-line1.getX2()); double angle2=Math.atan2(line2.getY1()-line2.getY2(), line2.getX1()-line2.getX2()); return Math.toDegrees(angle1-angle2); } 我不知道如何使用DrawArc来绘制我想要的精确的圆弧,也不知道如何在上面设置角度


感谢和问候。

来自文档,drawArc的论点如下:

整数x,整数y,整数宽度,整数高度,整数星形,整数弧角

x和y是公共点p1,宽度和高度可能都是10,以绘制半径为10像素的圆弧

您计算的角度是最后一个参数arcAngle,用于测量逆时针方向的圆弧扫掠。所以你需要计算的最后一部分是起始角,这可能是你的角度1或角度20,在这种情况下是正x轴或3点钟位置

请记住,如前所述,您有时会绘制大于180度的圆弧,如果您希望始终找到两条直线之间的最小角度,则需要更多的逻辑

至于文本,您可以使用抽绳,并使用具有一半扫掠角度和所需半径的三角学计算出x和y。不过,为了获得最佳位置,您可能需要弄清楚正在绘制的象限并从中进行调整