作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在开发一个项目,其中我需要使用java.awt.Graphics
在JFrame
的中心绘制一个非直角三角形' 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));
希望这有帮助。
关于Java计算非直角三角形内角的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40900947/
我是一名优秀的程序员,十分优秀!