首页 > 解决方案 > 根据角度和距离找到 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 度“异相”

在此处输入图像描述

标签: javafxcoordinatestrigonometryequation

解决方案


推荐阅读