计算垂直于 3D 中第三个向量的两个向量

2023-11-24

是什么最好(最快)如何计算垂直于第三个向量(X)并且彼此垂直的两个向量?

这就是我现在计算这个向量的方式:

// HELPER - unit vector that is NOT parallel to X
x_axis = normalize(X);
y_axis = crossProduct(x_axis, HELPER);
z_axis = crossProduct(x_axis, y_axis);

我知道这个问题有无数种解决方案,我不在乎哪一个是我的解决方案。

这个问题背后是什么:我需要构造变换矩阵,我知道 X 轴(矩阵中的第一列)应该指向哪个方向。我需要计算 Y 轴和 Z 轴(第二列和第三列)。众所周知,所有轴必须相互垂直。


我所做的,前提是X<>0 or Y<>0 is

  1. A = [-Y, X, 0]
  2. B = [-X*Z, -Y*Z, X*X+Y*Y]

然后对向量进行归一化。

[ X,Y,Z]·[-Y,X,0] = -X*Y+Y*X = 0
[ X,Y,Z]·[-X*Z,-Y*Z,X*X+Y*Y] = -X*X*Z-Y*Y*Z+Z*(X*X+Y*Y) = 0
[-Y,X,0]·[-X*Z,-Y*Z,X*X+Y*Y] = Y*X*Z+X*Y*Z = 0

这被称为零空间你的向量。

If X=0 and Y=0 then A=[1,0,0], B=[0,1,0].

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

计算垂直于 3D 中第三个向量的两个向量 的相关文章

  • Python 中的 C 指针算术

    我正在尝试将一个简单的 C 程序转换为 Python 但由于我对 C 和 Python 都一无所知 这对我来说很困难 我被 C 指针困住了 有一个函数采用 unsigned long int 指针并将其值添加到 while 循环中的某些变量
  • 计算任意网格的平面 UV 坐标

    我有从二维形状生成三角形网格的代码 因为在大多数情况下 这些形状在表面上的顶点分布不均匀 所以我在生成 UV 时遇到了问题 这样就不会导致纹理扭曲 任何人都可以推荐一些讨论平面网格上 UV 计算技术的文章 书籍 代码示例吗 谢谢 好的 让我
  • 为什么斐波那契堆被称为斐波那契堆?

    The 斐波那契堆 http en wikipedia org wiki Fibonacci heap数据结构的名称中有 斐波那契 一词 但数据结构中似乎没有任何内容使用斐波那契数 根据维基百科文章 斐波那契堆的名称来自于运行时间分析中使用
  • 有没有办法根据值是大于 0.5 还是小于 0.5 来进行下限/上限?

    我正在尝试舍入我的价值观 以便如果它是0 5或更大 则变为1 否则就变成0 例如 3 7 gt 4 1 3 gt 1 2 5 gt 3 有任何想法吗 Math Round 3 7 MidpointRounding AwayFromZero
  • 判断一个点是否在直角三角形内

    我一直想知道最简单的方法来确定一个点是否位于三角形内 或者在这种情况下 判断一个点是否位于对角线切成两半的矩形内 假设我有一个 64x64 像素的矩形 对于这个矩形 如果传递的点位于矩形的左上角 我想返回 TRUE 值 否则返回 FALSE
  • JavaScript 或 IEEE-754 中的舍入怪癖?

    我在一个单元测试中遇到了一个奇怪的问题 我在 JavaScript 中得到了意外的舍入结果 2 005 toFixed 2 produces 2 00 2 00501 toFixed 2 produces 2 01 最初我怀疑这只是 Web
  • 将大数字转换为字母(然后再转换回来)

    是否有一个术语来描述将大数字存储为字母的想法 例如 假设我有 相对较小的 数字 138201162401719 并且我想将字符数缩小到尽可能少的字符数 我知道这无助于节省磁盘空间 英文字母表中有 26 个字母 但我将它们算作 25 个 因为
  • 使用 vtk 给定一组点创建多条折线

    我需要使用 vtk 和 paraview 显示 50 个粒子空间中的轨迹 目前我的数据是pos x y t n 其中 n 是第 n 个粒子的标签 我已将所有数据保存在 vtk 文件中 该文件的组织方式如下 vtk DataFile Vers
  • 基本的 Python OpenCV 裁剪和调整大小

    有人可以帮我一些裁剪算法吗 它的 openCV 我想弄清楚这一点 我知道方法是crop image y y1 x x1 如果我有一个带有 new dimensionXxnew dimensionY 像素的图像 并且我想将其裁剪为相同的宽度
  • 带有向量的 unique_ptr:错误:调用 XXX 的隐式删除复制构造函数

    我想管理一个二维数组 如下所示 std vector
  • 如何在 R 中导入并绘制三角形网格?

    我想在 R 中绘制我的模型输出 它是格式为的三角形网格 x1 y1 z1 x2 y2 z2 x3 y3 z3 value 每行代表一个三角形 我想用以下方法绘制这些三角形value作为规模 mymesh lt structure c 0 9
  • C# 中的反转数

    有没有一种简单的方法可以用函数反转 C 中的数字 我正在使用 XNA 我想告诉我的程序 如果我的 变量 超过某个数字 它必须反转它的值 重点是提供反弹效果 if ballPosition X gt screenWidth Invert th
  • LibGDX 将 Vector2 与浮点值相乘

    有没有办法将 Vector2 与浮点值相乘 我曾经在 XNA 中这样做 通过将归一化方向向量与速度浮点数相乘来计算运动 这几乎是我的代码中使事情正常工作的最后一步 但似乎没有用于接受浮点值的 Vector2 的乘法函数 我可以手动将 x 和
  • 如何求两个地点的经纬度距离?

    我有一组位置的纬度和经度 怎么找distance从集合中的一个位置到另一个位置 有公式吗 半正矢公式假定地球是球形的 然而 地球的形状更为复杂 扁球体模型会给出更好的结果 如果需要这样的精度 你应该更好地使用文森特逆公式 See http
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • 石和磅的格式正确吗?

    我有一个图表 用于显示重量 以英石和磅 lbs 为单位 该图表由记录中的数据填充 对于权重 数据类型为 Double 记录数据是在运行时编辑的 我需要知道一种正确格式化输入数据的方法 为了更好地理解 首先看一下这些示例值 它们表示为石和磅
  • 如何在 C# 中计算 power-of?

    我不太擅长数学 而且 C 似乎没有提供幂函数 所以我想知道是否有人知道我将如何进行这样的计算 var dimensions 100 100 100 00 3 00 See Math Pow http msdn microsoft com e
  • 清理 STL 指针列表/向量

    您可以想出的最短的 C 块是多少来安全地清理std vector or std list指针 假设您必须对指针调用删除 list
  • 我在哪里可以学习游戏物理及其背后的数学基础知识? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我在大学学过数学 三角学 微积分 II 但我不知道为什么在游戏物理中使用 tan arctan 等 我
  • 使用 FIND 命令进行并集、交集和排除?

    我需要使用 find 命令管理列表 假设列表在非不同列表中具有随机名称 即它们的交集不是空集 我能怎么做 A B 查找列表A中除列表B中的文件之外的文件 A 路口 B 查找列表 A 和 B 共有的文件 请咨询here https stack

随机推荐

  • 使用iphone 5的后置麦克风

    我已经习惯了跟随code从麦克风传输音频的 I O 我想做的是想要选择后置麦克风进行录音 我读过将 kAudioSessionProperty Mode 设置为 kAudioSessionMode VideoRecording 可以完成这项
  • 如何在 yml 中获取我的配置值 - 使用 dropwizard (微服务) Jersey D.I @Injection?

    这是我的代码片段 这是我的 yml 文件 productionServer host production server amazonaws com publicIp xx xx xx xx privateIp xx xx xx xx us
  • 如何通过C#配置Outlook帐户?

    需要通过c 配置email 姓名 邮件服务器等 在不使用 Outlook Redemption 的情况下如何执行此操作 First 创建一个 PRF 文件 通过 NET 应用程序手动或动态 然后 要导入帐户 请使用命令行选项启动 Outlo
  • 为什么我们不将 .class 扩展名与“java”命令一起使用?

    为什么我们不给filename class之后归档java命令 而不是仅filename 假设我们要编译test java程序 然后我们运行javac test java 没关系 之后它会产生test class文件但运行我们运行的程序ja
  • 与 suPHP 一起实现登录

    如何设计类似登录的功能来使用 suPHP 的文件权限 例如 如果我有一个网站www example com以下两个用户有自己的主目录 每个用户都有一个 php 脚本test php and a validateUser php属于另一个用户
  • 在 MediaProjection 中完全隐藏安全视图 - android

    我正在使用 MediaProjection API 创建屏幕录像机应用程序 在我的应用程序中 我将停止按钮显示为一个小的覆盖窗口 我已将此视图保持安全 以便它不会出现在最终录制的视频中 此视图不会出现在最终视频中 但最终输出本身是一个黑色区
  • 使用服务主体访问 Azure Blob 存储

    我想通过使用活动目录服务主体的凭据从 python 访问私有 blob 存储 我知道这个相关问题如何在 python 中针对 Azure 存储 blob 对用户进行身份验证 这帮助我走到了这一步 但现在我陷入了困境 我可以进行身份 验证并获
  • 将结构传递给函数

    我是一名新 C 程序员 我想知道如何通过struct到一个函数 我收到错误并且无法找出正确的语法来执行此操作 这是它的代码 Struct struct student char firstname 30 char surname 30 st
  • Docker 撰写可执行文件在 $PATH 中找不到”:未知

    但我有问题 Dockerfile FROM python 3 ENV PYTHONUNBUFFERED 0 RUN mkdir code WORKDIR code COPY requirements txt code RUN pip ins
  • 使用 powershell 从 Outlook 获取今天的约会:不需要的结果

    我使用以下代码提取今天的约会 olFolderCalendar 9 ol New Object ComObject Outlook Application ns ol GetNamespace MAPI Start Get Date Add
  • switch 语句 - 字符串与 int

    我在事件处理程序中有这行 javascript var value event currentTarget value example 9 然后我在 switch 语句中使用它 switch value case 9 return 12 c
  • 计算设置的位数

    我想计算设置的二进制数中的位数 例如 用户输入数字 97 二进制表示为 01100001 该程序应该告诉我 3 位是使用 MIPS ISA 设置的 我能够用 C 实现这一点 但我不知道如何使用汇编代码实现它 您要查找的内容通常称为人口计数
  • WPF图像控件源码

    我试图在 WPF 中重新创建一个非常简单的 C 项目示例 它是一个简单的图像查看器 来自 sam 的自学 C 我设法打开了打开文件对话框 但是我如何将图像路径设置为WPF 中的 image source 控件 private void Se
  • 异步任务与异步无效

    这可能是一个非常愚蠢的问题 但我有以下几行代码将 RAW 图像转换为 BitmapImages public async void CreateImageThumbnails string imagePath int imgId await
  • 如何在 Windows 上使用另一个用户帐户创建新进程?

    是否可以使用不同的用户帐户在 Windows 上创建新进程 我知道有一个上下文菜单 运行方式 但我想从 Java 执行此操作 我有用户名和密码 您需要使用以下方法编写 DLLJava 本机接口 JNI 因为你无法使用纯 Java 代码来做到
  • 将 Nokogiri 文档转换为 Ruby Hash

    有没有一种简单的方法可以将 Nokogiri XML 文档转换为哈希值 类似于 Rails 的东西Hash from xml 如果要将 Nokogiri XML 文档转换为哈希 只需执行以下操作 require active support
  • 如何在jquery中启用和禁用文本框[重复]

    这个问题在这里已经有答案了 我写了一个html和脚本的示例代码如下 当我首先执行此代码时 我会收到警报 hello 但当我通过按选项卡按钮在 cca 进行更改时 会收到其他警报 然后它不会显示警报 如何使用该文本框并启用和禁用它的其他文本字
  • 如何将 DataTable 序列化为 json 或 xml

    我正在尝试将 DataTable 序列化为 Json 或 XML 可能吗 如何 任何教程和想法 请 例如有一个sql表 CREATE TABLE dbo dictTable keyValue int IDENTITY 1 1 NOT NUL
  • 如何在 Swift 中比较两个字典?

    有没有一种简单的方法可以比较两个 String AnyObject Swift 中的字典 因为它不接受 操作员 通过比较两个字典 我的意思是检查它们是否具有相同的精确键 并且对于每个键 它们是否具有相同的值 正如 Hot Licks 已经提
  • 计算垂直于 3D 中第三个向量的两个向量

    是什么最好 最快 如何计算垂直于第三个向量 X 并且彼此垂直的两个向量 这就是我现在计算这个向量的方式 HELPER unit vector that is NOT parallel to X x axis normalize X y ax