作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要找到一条已知其中点、角度和长度的线的端点。首先,我尝试了这个:
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/
我是一名优秀的程序员,十分优秀!