【问题标题】:Java calculating points of Angles in a non-right triangleJava计算非直角三角形中的角度点
【发布时间】:2016-12-01 01:02:06
【问题描述】:

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

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

从我的图片中可以看出,我需要基于 A 的坐标的 C 的坐标,在给定非直角三角形所有边的长度和角度的情况下,有没有办法计算这个?

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

【问题讨论】:

  • 使用三角函数。这是一个几乎微不足道的问题。如果你没学过,你真的很需要二维绘图。
  • 给定A的坐标,C的坐标可以完全由b的长度和A的角度确定——这是一个简单的直线方程;在您尝试确定中心之前,它是三角形的一部分这一事实甚至都不相关。我会在坐标0,0 处以A 开始所有计算,然后翻译 结果。三角形的中心:dummies.com/education/math/trigonometry/…
  • 我真的希望有人只是发布答案,而不是仅仅评论答案是三角函数......
  • 你可能会在数学网站上得到更好的结果,因为这与编程无关。
  • @TimBiegeleisen 不幸的是,我无法在数学网站上发布图片,直到获得超过 15 名声望。

标签: java triangulation triangular


【解决方案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));

希望这会有所帮助。

【讨论】:

  • 谢谢!我建议在您获得足够高的声誉后,用一张代表 Theta 在这两种情况下的照片来修改您的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多