将屏幕坐标转换为图形坐标

3

简而言之:是否有一种函数能够获得与identify()locator()相同的输出结果,但不需要鼠标点击(例如使用鼠标悬停位置)?

我正在生成绘图并将它们保存为PNG文件,并将它们嵌入到我的应用程序中。当用户在我的应用程序中与图像交互时,我想将这些屏幕坐标发送回R中的图形设备,以了解用户在数据坐标系中的位置。

我需要一种版本的identify()locator(),允许我显式地传递鼠标坐标。

例如,如果用户正在悬停在像素1000,2000上,他们是否在悬停对应于2015年和出生率90的点上?


2
这段代码已经超过10年了,所以可能会有新的发展,但是fortunes::fortune(30) - Gregor Thomas
1
请查看?grconvertX,如果足够小心,它应该允许您实现类似这样的东西。这里有一个答案,我在其中使用了它和grconvertY()从绘图(“user”)坐标转换为规范化设备(“ndc”)坐标--基本上是您可能想要使用的操作的反向。 - Josh O'Brien
Josh,grconvertX完美地工作了!你能把它添加为答案,这样我就可以标记为已回答,以帮助未来的搜索者吗?我发现“dev”或设备坐标给出了“user”坐标的精确像素值,这些值来自图形,所以反过来也应该行得通。似乎ndc坐标基本相同,但除以图像宽度以将其归一化到0到1的范围内,是这样吗? - Neil
Gregor,这是我曾经收到的最史诗般的回答!有人在我之前10年问了完全相同的问题,这个问题被认为足够重要而被包含在一个库中,你能够精确地回忆和引用。 - Neil
嗨@zx8754,我确实错过了这个问题,但是我没有时间/兴趣写答案。请随意采用我的评论,并将其作为您自己的答案详细说明。 - Josh O'Brien
1个回答

1
请查看?grconvertX,如果足够小心,应该可以让您实现类似于这样的东西。在这里有一个答案,我在其中使用了它和grconvertY()从图形(“用户”)坐标转换为规范化设备(“ndc”)坐标 - 基本上是您可能想要使用的操作的反向。- Josh O'Brien Apr 2 '15 at 17:05
我发现“dev”或设备坐标为我提供了“user”坐标的精确像素值,这些值来自图表,因此反过来应该可以工作。似乎“ndc”坐标基本相同,但除以图像的宽度以将其归一化到0到1的范围内。- Neil Apr 12 '15 at 0:14

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接