0

JFrame我目前正在做一个项目,我需要使用java.awt.Graphics'sdrawLine()drawPolygon()方法在 a 的中心绘制一个非直角三角形。这两种方法都需要所有点的坐标才能起作用。我的问题是,我所拥有的不是点,而是三角形的所有角度和边长。我已经绘制了一张漂亮的图表,希望能帮助您形象化我的问题:

在此处输入图像描述

(编辑此 Senario 中 C 的位置在 a 和 b 之间不固定,可能位于 AB 所在轴下方的任何位置)

正如您从我的图片中看到的,我需要基于 A 的坐标的 C 的坐标,考虑到非直角三角形的所有边的长度和角度,有没有办法计算这个?

奖励:我如何找到 A 的 (x, y) 值,它可以有效地将三角形居中在 JFrame 的中间?

4

1 回答 1

1

如果您知道角度 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));

希望这可以帮助。

于 2016-12-01T01:53:15.373 回答