gpt4 book ai didi

java - 如何在 Java 中获取直线的端点(已知角度、中点和长度)

转载 作者:行者123 更新时间:2023-12-01 09:31:02 25 4
gpt4 key购买 nike

我需要找到一条已知其中点、角度和长度的线的端点。首先,我尝试了这个:

    public Point getEndpointA(Point midpoint, double angle, double length) {
Point a = new Point(0, 0);
a.x = midpoint.x + (int) length * Math.cos(angle);
a.y = midpoint.y + (int) length * Math.sin(angle);
return a;
}
public Point getEnpointB(Point midpoint, double angle, double length) {
Point b = new Point(0, 0);
b.x = midpoint.x + (int) length * Math.cos(-angle);
b.y = midpoint.y + (int) length * Math.sin(-angle);
return b;
}

然后我调用这些函数来获取线条的端点。然而,这是不准确的,并且分数没有达到我希望的位置。然后,我尝试使用距离公式进行实验,但这不起作用,因为我才刚刚开始代数 I,而且我在摆脱指数和根号时遇到了麻烦,而代数 I 中没有涵盖这些内容。(我查阅了函数 sin 和 cos,我现在明白它们的含义,所以这就是我对它们的了解)那么,有人可以编写一个函数,根据中点、角度和长度返回直线的端点,并向我解释一下吗它是如何工作的?

最佳答案

您想像下面这样指定角度(以度为单位)吗?

        public Point getEndpointA(Point midpoint, double angleDegee, double length) {
Point a = new Point(0, 0);

// convert degrees=>radians
final double angleRad = Math.toRadians(angleDegee);

a.x = (int) (midpoint.x + (int) length * Math.cos(angleRad));
a.y = (int) (midpoint.y + (int) length * Math.sin(angleRad));

return a;
}

public Point getEndpointB(Point midpoint, double angleDeg, double length) {
Point b = new Point(0, 0);

final double angleRad = Math.toRadians(angleDeg + 180d);

b.x = (int) (midpoint.x + (int) length * Math.cos(angleRad));
b.y = (int) (midpoint.y + (int) length * Math.sin(angleRad));

return b;
}

关于java - 如何在 Java 中获取直线的端点(已知角度、中点和长度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39401930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com