繁体   English   中英

如何画圆弧在Java三点角

[英]how to draw the arc for three point angle in java

在Java中,我有3个点,分别表示两条线并成一个角度。 现在,我必须创建距公共点约10个像素的角度弧。 在弧线上显示角度。 我能够计算角度,但是如何绘制圆弧并在圆弧上显示角度。 请告诉我一些代码视图或链接,在哪里可以找到解决方案。 CODE片段如下。

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的参数为:

INT的x,INT Y,INT宽度,高度INT,INT由startAngle,INT arcAngle

x和y是您的公共点(P1),和您的宽度和高度都大概10(画出半径10pixels圆弧)

已计算出的角度是最后一个参数(arcAngle),其测量在逆时针方向上弧的扫描。 所以,你需要制定出最后一部分是起始角度,这可能是你的角度1或angle2(在这种情况下,0是正x轴或3点钟位置)。

请记住,如您所写,您有时会绘制> 180度的弧,如果您想始终找到两条线之间的最小角度,则需要更多的逻辑。

至于文字,你可以使用一些三角你一半的后掠角和您所需的半径使用束带和弄不清x和y。 尽管为了获得最佳放置,您可能需要弄清楚要绘制的象限并从那里进行调整。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM