3D 数学:根据“向上”和“向上”正交向量计算倾斜(滚动)角度

2024-05-04

我希望这是提出这个问题的正确位置和这个一样 https://stackoverflow.com/questions/3035590/bank-angle-from-up-vector-and-look-at-vector,但表示为纯数学而不是图形(至少我希望我正确地将问题转换为数学)。

考虑到:

  • 两个正交向量:Up (ux, uy, uz) 和 Look (lx, ly, lz)
  • 垂直于 Look 的平面 P(因此包括 Up)
  • Y1 是 Y(垂直轴)沿 P 的投影

问题:Y1 与 Up 之间的角度值是多少?

数学家们都会同意,这是一个非常基本的问题,但我已经挠头至少两周了,无法想象如何将 Y 投影到 P 上……也许现在太老了,无法找到学校练习的解决方案。

我正在寻找三角解,而不是使用矩阵的解。谢谢。

Edit:我发现我需要确定相对于旋转轴的角度的符号,该旋转轴必须是“Look”。我在链接的问题上发布了最终代码(请参阅上面的链接)。感谢那些提供帮助的人。我很感激你的时间。


我只是在纸上做这件事。我希望这是对的。

假设 Up 和 Look 已标准化,即长度为 1。假设平面 P 包含原点,L 为其法线。 Y 为 (0, 1, 0)

要将 Y 投影到 P 上,求其到 P 的距离...

d = Y dot L = ly

...然后将法线缩放-d以获得Y1(即Y在P上的投影)

Y1 = (lx * ly, ly * ly, lz * ly)

现在标准化 Y1,即按 (1 / 长度) 缩放。如果它的长度是 0 那么你就不走运了。

Y1 和 Up 的点积 = 角度的余弦。所以

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

3D 数学:根据“向上”和“向上”正交向量计算倾斜(滚动)角度 的相关文章

  • 为什么 C# Math.Ceiling 向下舍入?

    我今天过得很艰难 但有些事情不太对劲 在我的 C 代码中 我有这样的内容 Math Ceiling decimal this TotalRecordCount this PageSize Where int TotalRecordCount
  • 将名称字符串编码为唯一的数字

    我有一大堆名字 数以百万计 他们每个人都有一个名字 一个可选的中间名和一个姓氏 我需要将这些名称编码为唯一代表这些名称的数字 编码应该是一对一的 即一个名称只能与一个数字相关联 一个数字只能与一个名称相关联 对此进行编码的明智方法是什么 我
  • 批处理文件中是否存在“Power to”功能? (指数)

    Problem 有没有办法将变量 乘以 数字或其他变量的批处理文件 有这个功能吗 Python 中的一个示例是您可以使用 为 到 的力量 EDIT 您可以在批处理文件中进行数学运算 http en wikipedia org wiki Ba
  • java数学中的组合“N选择R”?

    java库中是否有内置方法可以为任何N R计算 N选择R 公式 实际上很容易计算N choose K甚至不需要计算阶乘 我们知道 公式为 N choose K is N N K K 因此 公式为 N choose K 1 is N N N
  • 用 python 编写的数学语法检查器

    我需要的只是使用 python 检查字符串是否是有效的数学表达式 为了简单起见 假设我只需要 运算符 也作为一元 带有数字和嵌套括号 为了完整性 我还添加了简单的变量名称 所以我可以这样测试 test 3 2 1 valid test 3
  • 判断点是否在截锥体内

    我正在尝试找出确定一个点是否在截锥体内的最佳方法 我有一些工作 但不确定它是否太麻烦 也许我应该有一种更优雅 有效的方法来做到这一点 假设我想查明点 x 是否在截锥体内 一旦我知道了平截头体的 8 个点 4 个近点 4 个远点 的位置 我就
  • 简单模式7公式/例子?

    我最近发现了利用 SNES 模式 7 的伪 3D 效果 并想尝试在 Godot 引擎中复制它 我尝试在网上查找 但所有内容要么以我无法理解的方式解释 要么以我不知道的编程语言解释 我还需要学习如何旋转该区域 并将精灵作为角色或敌人放入 但我
  • O(n^2) 与 O (n(logn)^2)

    时间复杂度是O n 2 or O n logn 2 better 我知道当我们简化它时 它就变成了 O n vs O logn 2 and logn lt n 但是关于logn 2 n is only less than log n 2 f
  • .NET 的符号数学

    我正在寻找 NET 框架的符号数学库 我看过Math net 但它还不是可用的 您知道是否还有其他图书馆存在吗 这可能有点过分了 但你可以和数学 http www wolfram com products mathematica index
  • 确保 unsigned int/long 始终在 C# 中的检查上下文中执行

    有没有人觉得奇怪 uint 和 ulong 的默认上下文是未检查的 而不是检查的 因为它们旨在表示永远不能为负的值 因此 如果某些代码试图违反该约束 在我看来 自然且首选的行为是抛出异常 而不是返回最大值 这很容易使重要数据处于无效状态并且
  • C/C++:指针算术

    我在读一点 指针算术 发现有两件事我无法理解 也不知道它的用途 address expression address expression and also address expression gt address expression
  • 计算机如何评估巨大的数字?

    例如 如果我输入一个值 1234567 98787878 Wolfram Alpha 可以为我提供许多细节 这包括小数近似 总长度 最后一位数字等等 您如何评估如此大的数字 据我了解 编程语言必须具有特殊的数据类型才能存储数字 更不用说将其
  • RNG 技术的可移植性和可重复性

    我可以使用两种方法之一来创建一个伪随机数序列 该序列具有两个重要特征 1 它可以在不同的机器上重现 2 该序列永远不会重复范围内的数字 直到所有数字都被发出 我的问题是 这两种方法在可移植性 操作系统 Python 版本等 方面是否存在潜在
  • JavaScript 阶乘防止无穷大

    我一直在 JavaScript 中使用这个函数来计算阶乘数 var f function factorial n if n 0 n 1 return 1 if f n gt 0 return f n return f n factorial
  • 在现代 x86-64 上计算 64 位整数的整数 Log10 的最快方法是什么?

    标题 我找到了大量 32 位示例 但没有找到完整的 64 位示例 使用这个帖子 https codegolf stackexchange com questions 47290 fastest way to compute order of
  • 如何向 3D 表面添加文本

    我使用plot surface 创建了具有平行四边形底座的矩形棱柱 我需要向其中一个表面添加一些文本 我试过ax text 3 0 5 1 red 1 1 0 color red 但文本在表面上不可见 import matplotlib p
  • 在 3D 场景中实现“抓取”相机平移工具

    在我的场景中 我有想要 抓取 的地形 然后在移动光标时让相机平移 其高度 视图向量 视野等全部保持不变 因此 最初的 抓取 点将是世界空间中的工作点 我希望在拖动时该点保留在光标下方 我当前的解决方案是获取前一个和当前的屏幕点 取消投影它们
  • 几何:找到两点之间特定距离的点

    这类似于这个问题 https stackoverflow com questions 328107 how can you determine a point is between two other points on a line se
  • 无法使用 vcglib 简化 3D 模型,断言“0”失败

    I used vcglib https github com cnr isti vclab vcglib简化 3D 模型文件 我使用了 master a8e87662 git 存储库 我运行示例 trimesh clustering htt
  • 如何在sphinx中启用数学?

    我在用sphinx http sphinx pocoo org index html与pngmath http sphinx pocoo org ext math html module sphinx ext pngmath扩展来记录我的代

随机推荐