从 x,y 屏幕空间坐标查找 2D 等距网格上的列、行(将方程转换为函数)

2024-05-21

我试图在屏幕空间点 (x, y) 的二维等距网格中找到行、列

现在我几乎知道我需要做什么,即找到上图中红色向量的长度,然后将其与表示网格边界的向量的长度(由黑色向量表示)进行比较

现在我在数学堆栈交换中寻求帮助,以获得用于计算点 x,y 与黑色边界向量相比的平行向量的方程。链接在这里垂直/平行向量的长度 https://math.stackexchange.com/questions/51774/length-of-perpendicular-parallel-vectors

但我无法将其转换为函数

理想情况下,我需要足够的函数来从三组点(两个黑色向量末端的 x,y 和红色向量末端的点)获取两个红色向量的长度。

任何语言都可以,但最好是 javascript


您需要的是基础转换:

假设第一个黑色矢量的坐标是(x1,x2),第二个黑色矢量的坐标是(y1,y2)。

因此,找到到达点 (z1, z2) 的红色向量相当于求解以下线性系统:

x1*r1 + y1*r2 = z1
x2*r1 + y2*r2 = z2

或矩阵形式:

   A      x  =  b

/x1 y1\ |r1| = |z1|
\x2 y2/ |r2|   |z2|

          x = inverse(A)*b

例如,让黑色向量为 (2, 1) 和 (2, -1)。相应的矩阵A将是

2 2
1 -1

它的倒数将是

1/4 1/2
1/4 -1/2

因此,原始坐标中的点 (x, y) 将能够在替代基数中表示,通过以下公式:

(x, y) = (1/4 * x + 1/2 * y)*(2,1)  + (1/4 * x -1/2 * y)*(2, -1)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 x,y 屏幕空间坐标查找 2D 等距网格上的列、行(将方程转换为函数) 的相关文章

随机推荐

  • 将大文件添加到 IO.Compression.ZipArchiveEntry 会抛出 OutOfMemoryException 异常

    我正在尝试使用以下代码将一个大视频文件 500MB 添加到 ArchiveEntry using var zipFile ZipFile Open outputZipFile ZipArchiveMode Update var zipEnt
  • 在 MongoDB 中查找具有字符串 ID 数组的文档

    我有一个 id 字符串数组 我想将其与 find 函数一起使用 db companies find id in arr arr看起来像这样 563a2c60b511b7ff2c61e938 563a2c60b511b7ff2c61e8b7
  • 探索java图像处理的好资源[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我是图像处理领域的新手 请推荐一些好的资源 书籍和网络链接 来学习 Java 中的图像处理 最适合隐写术分析 适合初学者和高级水平 我看过
  • ASP.NET MVC3 应用程序可以在不更改特定代码的情况下托管在云中吗?

    我使用以下方法创建了一个 ASP NET Web 应用程序 ASP NET MVC 3 网络表单 Linq 到 SQL MS SQL Server 数据库 WCF 需要做什么才能将其托管在云服务上 我是否应该将其转换为 Azure 应用程序
  • 如何在文档加载时立即进行 AJAX 调用

    我想在加载文档后立即执行 ajax 调用 我正在做的是加载一个字符串 其中包含我将用于自动完成功能的数据 这就是我所做的 但它没有调用servlet 我删除了对各种 JS 脚本的调用 以使其更清晰 我在代码中做了几个类似的 AJAX 调用
  • 在 macOS 上通过 Apache 本地运行 Xcode DocC 文档

    Xcode 13 的 DocC 文档档案可以使用自定义 Apache 托管 htaccess文件中描述的向外部开发人员分发文档 https developer apple com documentation xcode distributi
  • 在网络文件系统上使用 Play 框架自动重新加载

    我正在 VirtualBox VM 上运行 Play 框架应用程序 项目源代码位于与主机系统共享的目录中 框架的自动重新加载功能不起作用 这 可能 是由于 JNotify 无法检测到源文件的更改造成的 因为文件系统不是本地的 NFS 和 v
  • std::vector 迭代器失效

    之前有几个关于这个问题的问题 我的理解是调用std vector erase只会使位于某个位置的迭代器无效after被擦除的元素 然而 擦除一个元素后 该位置的迭代器是否仍然有效 当然 前提是它不指向end 擦除后 我对向量如何实现的理解似
  • Android 8.1 中 Activity 自行旋转并恢复正常

    我的应用程序在所有 Android 版本上运行良好 但我注意到在 Android 8 1 0 Oreo 中 当我将屏幕从纵向活动转到横向活动时 以及当我按后退按钮时 它会显示异常行为 屏幕自动从横向旋转并恢复正常 看起来 Activity
  • 递归 lambda 表达式可能吗?

    我正在尝试编写一个调用自身的 lambda 表达式 但我似乎找不到任何语法 或者即使它是可能的 本质上我想将以下函数传输到以下 lambda 表达式中 我意识到这是一个愚蠢的应用程序 它只是添加 但我正在探索可以在 python 中使用 l
  • 多语言 Android 应用程序:在电子邮件和密码字段中显示英文键盘

    我们正在开发一款多语言 Android 应用程序 针对英语和阿拉伯语 面临的问题是在登录和注册屏幕中 我们希望仅以英文文本输入用户名和密码字段 从而显示英文键盘 无论设备区域设置语言如何 已尝试在 edittext 中设置 inputtyp
  • Ext JS - 如何滚动到文本区域的底部

    这是我下面的代码 如何滚动到文本区域的底部 它一定是类似的东西 Ext getCmp output setScrollPosition Ext getCmp output getScrollHeight 这是我的文本区域代码 var myW
  • 如何向 jQuery Tokeninput 添加占位符?

    如何将占位符添加到 jQuery Tokeninput 字段 一个正常的placeholder属性在这里不起作用 对于这样的输入
  • 指示brew doctor忽略特定的*.dylib文件

    我该如何指导brew doctor忽略特定的 dylib files e g brew doctor输出 Unexpected dylibs usr local lib libecomlodr dylib usr local lib lib
  • Android 谷歌地图 V2 已停止

    我正在尝试构建地图应用程序并关注这个链接 https blog emildesign rhcloud com p 435一步步 我在这里找到了类似的主题 但对我没有帮助 我想显示地图 但是当我运行它时 它返回强制关闭和我的 Android
  • Node.js 每个用户一个会话

    如何防止我的用户同时从两个设备登录我的系统 因此 如果用户从计算机登录 当他从不同的计算机登录时 首先会自动关闭会话 不需要使其实时 我使用node js express js mongoose passport connect mongo
  • Findbug - ANT xslt 样式表源代码参考

    我有一个 ANT 目标 它在同一源代码上运行 findbugs 两次以生成 xml 和 html 报告
  • C# 中的 H.264(或类似)编码器?

    有谁知道 C 或任何其他托管语言 的开源 H 264 编码器 我也许也可以用 python 实现 我发现的库 例如 x264 是用相当低级的 c 带有大量宏的程序 和汇编语言编写的 调整它们比我想象的要复杂得多 我的项目不关心性能或兼容性
  • Java:无安全管理器:RMI 类加载器已禁用

    您好 我有 RMI 应用程序 现在我尝试从客户端调用服务器上的一些方法 我有以下代码 public static void main final String args try Setting the security manager Sy
  • 从 x,y 屏幕空间坐标查找 2D 等距网格上的列、行(将方程转换为函数)

    我试图在屏幕空间点 x y 的二维等距网格中找到行 列 现在我几乎知道我需要做什么 即找到上图中红色向量的长度 然后将其与表示网格边界的向量的长度 由黑色向量表示 进行比较 现在我在数学堆栈交换中寻求帮助 以获得用于计算点 x y 与黑色边