Gnuplot:网站上嵌入的交互式SVG图形在缩放时显示错误的鼠标坐标

Gnuplot: interactive SVG graph embedded on website shows wrong mouse coordinates when scaled

本文关键字:缩放 显示 坐标 鼠标 错误 图形 SVG 网站 交互式 Gnuplot      更新时间:2023-09-26

当您嵌入Gnuplot svg图时,使用设置术语SVG大小600,480鼠标jsdir http://your.server.com/gnuplot-js-directory/在你的网页上,你可以切换一个坐标框来显示X和Y值。

如果您的SVG文件在<embed><object>标签中相对于大小(600px × 480px)进行缩放,则坐标将关闭,并且不会显示在光标旁边。

这是gnuplot_svg.js目录下的一个错误。

找到写

的部分
p.x = evt.clientX; p.y = evt.clientY;
p = p.matrixTransform(m.inverse());
// Allow for scrollbar position (Firefox, others?)
if (typeof evt.pageX != 'undefined') {
    p.x = evt.pageX; p.y = evt.pageY;
}

,并添加以下行:

if (document.documentElement.clientWidth) {
                p.x = p.x / document.documentElement.clientWidth * gnuplot_svg.plot_term_xmax;
                p.y = p.y / document.documentElement.clientHeight * gnuplot_svg.plot_term_ymax;
        } else if (window.innerWidth) {
                p.x = p.x / window.innerWidth * gnuplot_svg.plot_term_xmax;
                p.y = p.y / window.innerHeight * gnuplot_svg.plot_term_ymax;
        }

坐标框的位置现在应该相对于或标记内SVG的实际大小进行缩放,并将跟随光标。(适用于Chrome和InternetExplorer, Firefox不报告document.documentElement.clientWidth,而是报告window. documentelement . clientwidth。innerWidth和结果应该是一样的。还没有测试过Safari)