javafx - 根据角度和距离找到 x 和 y 坐标的正确公式是什么?
问题描述
我正在尝试在 JavaFX 中实现一个程序。我有一张喷气式飞机的图像,它可以围绕其中心轴旋转 360 度。我已将 x、y 坐标从左上角平移到中心。这个想法是当我向前移动图像时,它会在图像指向的方向上从其起始位置到新位置绘制一条线。我可以在节点上使用getRotate()方法得到当前角度,在12点钟位置取为0/360。角度以度为单位,但在必要时不能交换为弧度。起始 x、y 坐标位于图像中心。问题是我不知道使用 FX 窗格获得完整 360 的正确公式,该窗格的原点为 0,左上角为 0,值向右和向下递增。
//FxTimer.runPeriodically(Duration.ofMillis(turtleSpeed), () -> {
double startX = imageView.getX();
double startY = imageView.getY();
double endX = (startX + (distance * Math.cos(Math.toRadians(imageView.getRotate()))));
double endY = (startY + (distance * Math.sin(Math.toRadians(imageView.getRotate()))));
this.imageView.setX(endX);
this.imageView.setY(endY);
if(!(penUp)) {
Line line = new Line(startX, startY, endX, endY);
line.setStroke(penColour);
this.getChildren().add(line);
imageView.toFront();
}
编辑我已将原点移动到窗格的中心并转换为弧度,但仍然没有喜悦。这条线现在排得很好,但图像的移动是 90 度“异相”
解决方案
推荐阅读
- java - jdbc ads emtpy backets“()”在过程调用上
- javascript - Javascript appendChild 不反映在 DOM 中
- spring-boot - spring-cloud 版本 Hoxton.SR6 导致 Vault 集成出现问题
- assembly - 为什么objdump生成的文件中有未知指令?
- python - discord.py 如何让机器人不踢邮件作者
- android - 如何在 Android Studio 中使用 Java 将任何视图(按钮、文本视图、微调器)作为菜单项添加到 ActionBar?
- python - Django 本地化:语言和模型连接
- kubernetes - 更新未找到服务节点的端点切片时出错
- binary-search-tree - 垂直顺序二叉树遍历
- r - 有效绑定不同属性的行