在JavaFX中将对象显示在旋转对象的前面,然后启动

时间:2015-03-21 18:21:53

标签: java javafx rotation transform coordinate

我有一个在JavaFX中旋转的对象,在本例中是一个Rectangle。我想在我的第一个矩形的“顶部”前面制作第二个矩形,它基于鼠标点击显示。当第一个矩形没有旋转时,这种方法很好,但是一旦旋转,坐标就不对了。这是一些示例代码:

rec2.getTransforms().add(new Rotate(theta, rec1.getX() + 50, rec1.getY() -  72.5));

Theta是旋转角度。如何使第二个矩形始终显示在前面,而不是更高/更低的x / y位置?这可能需要数学......

更清楚:

If theta = 90, then(rec2's y position) is (rec1's y position - 10)//up by 10
           (rec2's x position) is (rec1's x position)
If theta = 0, then(rec2's y position) is (rec1's y position)
           (rec2's x position) is (rec1's x position + 10)//right by 10
and so forth for every angle 0 <=theta < 360.

然后,我想以恒定速度向前发射它。我想到了如何做到这一点,但它没有用(这是我的鼠标按钮点击处理程序):

            double slope = Math.tan(theta);
            rec2.setY(rec1.getX() * slope);
            rec2.setX(rec1.getY() / slope);

0 个答案:

没有答案