Java 计算非直角三角形的角点
Java calculating points of Angles in a non-right triangle
我目前正在做一个项目,我需要在 JFrame
的中心使用 java.awt.Graphics
的 drawLine()
或 drawPolygon()
方法。这两种方法都需要所有点的坐标才能起作用。我的问题是,我所拥有的不是点,而是三角形的所有角度和边长。我画了一个漂亮的图表,希望能帮助您形象化我的问题:
(编辑此 Senario 中 C 的位置在 a 和 b 之间不固定,可能位于 AB 所在轴下方的任何位置)
正如您从我的图片中看到的那样,我需要基于 A 的坐标的 C 的坐标,在给定非直角三角形的所有边的长度和角度的情况下,有什么方法可以计算出这个坐标吗?
奖励:我如何找到 A 的 (x, y) 值,使三角形有效地居中于 JFrame 的中间?
如果知道角度CAB,C点的坐标应该是:
(x+b·sin(θ), y-b·cos(θ))
在Java中,有:
double Math.sin(double radians);
double Math.cos(double radians);
请记住,角度必须以弧度为单位。如果你的角度是度数,试试:
double Math.sin(Math.toRadians(double degrees));
double Math.cos(Math.toRadians(double degrees));
希望对您有所帮助。
我目前正在做一个项目,我需要在 JFrame
的中心使用 java.awt.Graphics
的 drawLine()
或 drawPolygon()
方法。这两种方法都需要所有点的坐标才能起作用。我的问题是,我所拥有的不是点,而是三角形的所有角度和边长。我画了一个漂亮的图表,希望能帮助您形象化我的问题:
(编辑此 Senario 中 C 的位置在 a 和 b 之间不固定,可能位于 AB 所在轴下方的任何位置)
正如您从我的图片中看到的那样,我需要基于 A 的坐标的 C 的坐标,在给定非直角三角形的所有边的长度和角度的情况下,有什么方法可以计算出这个坐标吗?
奖励:我如何找到 A 的 (x, y) 值,使三角形有效地居中于 JFrame 的中间?
如果知道角度CAB,C点的坐标应该是:
(x+b·sin(θ), y-b·cos(θ))
在Java中,有:
double Math.sin(double radians);
double Math.cos(double radians);
请记住,角度必须以弧度为单位。如果你的角度是度数,试试:
double Math.sin(Math.toRadians(double degrees));
double Math.cos(Math.toRadians(double degrees));
希望对您有所帮助。