首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java在两条线的交点上画线

java在两条线的交点上画线
EN

Stack Overflow用户
提问于 2017-10-04 11:45:37
回答 2查看 616关注 0票数 1

我有一个程序,我可以画两条线,当我为这些线选择起点和终点时,它计算出它们将相交的点。我想画一条线,从交点开始,正好在这两条线的中间。

我在计算两条线之间的角度,如下所示:

代码语言:javascript
运行
复制
double angle(Line pL1, Line pL2){
    double angle = Math.toDegrees(Math.atan2(pL2.p1.y - pL1.p1.y, pL2.p1.x - pL1.p1.x));
    if(angle < 0){
        angle += 360;
    }
    return angle;
}

然后生成如下新行:

代码语言:javascript
运行
复制
    double newAngle = Math.toRadians(drawAngle);
    System.out.println(newAngle);
    double x = pI.x + 80 * Math.sin(newAngle);
    double y = pI.y + 80 * Math.cos(newAngle);
    Point2D.Double endPoint = new Point2D.Double(x,y);
    Line l3 = new Line(pI,endPoint);

其中pI是交点。然而,这条线最终总是面对错误的角度,我怎么才能重写这段代码,使这条线精确地画在另外两行之间,就像上面的示例图片一样?

编辑:

产出:

EN

Stack Overflow用户

回答已采纳

发布于 2017-10-04 12:04:20

我不知道你在用这个角度做什么,但我想你想要的第二点是:

代码语言:javascript
运行
复制
double y = 0.5*(pL2.p1.y + pL1.p1.y);
double x = 0.5*(pL2.p1.x + pL1.p1.x);

你正在计算的角度是一条线通过每条线的第一点画出的角度。似乎与此无关。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46564024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档