【发布时间】:2012-02-09 04:35:21
【问题描述】:
我知道这不是一个很难的触发问题,但遗憾的是我的数学迟钝。
我需要从已知起点沿已知角度到未知终点绘制一条 50 像素的线。角度是从起点 (400,400) 和鼠标单击得出的;这条线需要向鼠标点击方向绘制,但只有 50 像素向点击方向绘制。
我在 Google 上进行了广泛搜索并找到了许多解决方案,但对我来说并没有组合在一起。
这是我得到角度的方法:
float angle = (float) Math.toDegrees(Math.atan2(400 - event.getY(), 400 - event.getX()));
float angleInDegrees = (angle + 270) % 360;
“事件”是鼠标点击。
float endX = 250 + 50 * (float)Math.cos(angleInDegrees);
float endY 250 + 50 * (float)Math.sin(angleInDegrees);
line.setStartX(400);
line.setStartY(400);
line.setEndX(endX);
line.setEndY(endY);
我发现的所有内容都围绕 Math.cos 和 Math.sin 展开,但我仍然不明白。我认为这个问题与将弧度映射到场景坐标有关,但我不确定。所以人们,我到底是怎么傻的?如有任何帮助,我将不胜感激。
【问题讨论】:
标签: java trigonometry javafx-2