我在javafx中为我的音乐可视化工具做了一个创业经理。可视化器是用OpenGL编写的,管理器将信息输入可视化程序。在管理器中,我有某种形式的可视化器预览,其形式是只包含画布的舞台。在画布上,我想用鼠标画一些线,然后把坐标传递给OpenGL。我的问题是,如果我访问mouseEvent.getX()坐标,就会包含装饰,这意味着坐标不准确,或者被装饰移动了。以下是一些要展示的图片:

第一张截图显示经理。注意,这条线从左上角一直到右下角。

第二个屏幕截图显示了可视化工具。在这里,白线并没有一直往下走。
发布于 2016-06-07 13:08:40
我已经解决了这个问题,把这个答案留给以后参考。
当试图相对地缩放画布时,您必须小心使用哪种度量。
创建窗口时,Stage的坐标系相对于窗口的左上角,包括装饰。当添加一个固定大小的Node (如Canvas )时,Stage的大小会变大。
因此,当相对于Canvas的大小缩放某些东西时,您必须使用Canvas的宽度和高度。
https://stackoverflow.com/questions/37627893
复制相似问题