我正在javafx为我的音乐可视化工具创建一名创业经理。可视化工具是用OpenGL编写的,管理器将信息提供给可视化工具。在管理器中,我以只包含画布的舞台形式对可视化器进行某种预览。在画布上我想用鼠标绘制一些线条,然后将坐标传递给OpenGL。我的问题是,如果我访问mouseEvent.getX()
坐标,则包含装饰,这意味着坐标不准确,或者通过装饰移动。以下是一些展示的图片:
第一个屏幕截图显示了经理。请注意,该行从左上角一直向下到右下角
第二个屏幕截图显示了可视化工具。在这里,白线不会一直到底。 p>
答案 0 :(得分:0)
我已经修复了这个问题并留下了这个答案,以备将来参考。
尝试相对缩放画布时,必须小心使用哪种方法。
创建窗口时,Stage
的坐标系相对于窗口的左上角,包括装饰。添加固定大小的Node
(例如Canvas
)时,Stage
的大小会变大。
因此,当相对于Canvas
的大小缩放某些内容时,您必须使用Canvas
的宽度和高度。