如何插值旋转?

2024-03-24

我有两个描述旋转的向量;起始旋转 A 和目标旋转 B。我如何最好地通过因子 F 对 A 进行插值以接近 B?

当需要插值多个维度时(即产生不需要的旋转),在向量上使用简单的 lerp 不起作用。也许从旋转向量构建四元数并使用Slerp https://en.wikipedia.org/wiki/Slerp是要走的路。但是,如何从生成的四元数中提取描述新旋转的向量呢?


由于我似乎不太明白你的问题,所以这里有一点SLERP http://en.wikipedia.org/wiki/Slerp使用numpy在python中实现。我使用 matplotlib(Axes3D 的 v.99)绘制了结果。 我不知道你是否可以使用 python,但是看起来像你的 SLERP 实现吗?在我看来,给出了很好的结果......

from numpy import *
from numpy.linalg import norm

def slerp(p0, p1, t):
        omega = arccos(dot(p0/norm(p0), p1/norm(p1)))
        so = sin(omega)
        return sin((1.0-t)*omega) / so * p0 + sin(t*omega)/so * p1


# test code
if __name__ == '__main__':
    pA = array([-2.0, 0.0, 2.0])
    pB = array([0.0, 2.0, -2.0])

    ps = array([slerp(pA, pB, t) for t in arange(0.0, 1.0, 0.01)])

    from pylab import *
    from mpl_toolkits.mplot3d import Axes3D
    f = figure()
    ax = Axes3D(f)
    ax.plot3D(ps[:,0], ps[:,1], ps[:,2], '.')
    show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何插值旋转? 的相关文章

  • python中旋转图像:推断背景颜色

    我使用以下 python 代码旋转图像 from PIL import Image img Image open banana jpg rotated img rotate 10 rotated save banana rotated jp
  • 投影 3D 网格的 2D 轮廓算法

    给定 一个 3D 网格 由一组顶点和三角形定义 并用这些点构建网格 问题 找到任意平面上投影的任意旋转网格的二维轮廓 投影很容易 挑战在于找到平面中投影三角形边的 外壳 我需要一些有关研究该算法的输入 指针的帮助 为简单起见 我们可以假设
  • 指针 (*argv[]) 的指针的指针算术?

    我知道foo bar 等于 foo bar 但是什么是 foo bar 等于 例如访问 argv 2 我对这一点的理解有些困惑 我认为可能是这样的 foo bar 但我不确定 如果这是一个简单的答案 我深表歉意 a b 相当于 a b 由于
  • 计算标签云中标签字体大小的公式是什么?

    我有一个标签云 我需要知道如何更改最常用标签的字体大小 我需要设置最小字体大小和最大字体大小 您可以使用线性或对数评估与某个标签相对于最大标签关联的项目数量 将其乘以最小和最大字体大小之间的差值 然后将其添加到最小字体大小 例如 伪代码中的
  • Android:如何获取小数点后的两位数?不想截断值

    如何获取小数点后仅两位数的双精度值 例如 如果 a 190253 80846153846 那么结果值应该像 a 190253 80 尝试 我尝试过这个 public static DecimalFormat twoDForm new Dec
  • 将 R 中的向量按特定顺序转换为下三角矩阵

    我有一个向量 其中元素的顺序很重要 比如说 x lt c 1 2 3 4 我想将我的向量排列成具有特定顺序的下三角矩阵 其中每行包含向量的前一个元素 我的目标是获得以下矩阵 lower diag matrix 1 2 3 4 1 4 0 0
  • 为什么在 Javascript 中添加两位小数会产生错误的结果? [复制]

    这个问题在这里已经有答案了 可能的重复 JavaScript 的数学有问题吗 https stackoverflow com questions 588004 is javascripts math broken 为什么 JS 搞砸了这个简
  • 优雅的折线“左移”测试

    Given X Y 坐标 即车辆的位置 X Y 数组 它们是折线中的顶点 请注意 折线仅由直线段组成 没有圆弧 我想要的是 计算车辆是在折线的左侧还是右侧 当然还是在顶部 我的做法 迭代所有线段 并计算到每个线段的距离 然后 对于最近的段
  • opencv中矩阵的超快中值(与matlab一样快)

    我正在 openCV 中编写一些代码 想要找到一个非常大的矩阵数组 单通道灰度 浮点数 的中值 我尝试了几种方法 例如对数组进行排序 使用 std sort 和选择中间条目 但与 matlab 中的中值函数相比 它非常慢 准确地说 在 ma
  • 如何创建随机矩阵?

    我想创建一个随机矩阵 如 100 50 25 22 75 195 我的代码是 n 1 r 2 e 3 sup for i in range n sup1 for c in range r sup0 list random randint 2
  • 给定与总和匹配的长度的唯一 3 位数字 (-1,0,1) 序列的数量

    假设您有一个长度为 n 即空格数 的垂直游戏板 你有一个三面骰子 有以下选项 前进一 停留和后退 如果您低于或高于棋盘游戏空间的数量 则该游戏无效 一旦到达棋盘末端 唯一有效的动作就是 停留 给定确切的骰子投掷次数 t 是否可以通过算法计算
  • THREE.JS,忽略父级的轮换

    我试图使子对象跟随父级位置并表现得像一个普通的子对象 但是我希望它保持其旋转不变 在不影响性能的情况下 最好的方法是什么 我的CPU预算很紧张 已经运行了2个工作线程并且有很多对象 是否有设置只允许孩子的位置受到影响 同样重要的是 当父级旋
  • 确定范围是否重叠

    给定两个具有整数开始时间和结束时间的事件 E1 s1 e1 E2 s2 e2 实现快速布尔检查以查看事件是否重叠 我有解决方案 但我很想看看其他人想出了什么 编辑 好的 这是我的解决方案 e1 gt s2 s1 gt s2 e2 lt s1
  • 使轮子在IE中旋转

    我有以下使用 JS 和 CSS 旋转轮子的代码 var prefix function if document body style MozTransform undefined return MozTransform else if do
  • 横向 xib 显示为纵向

    我有一个视图控制器和单独的纵向和横向笔尖文件 旋转时 我加载相应的笔尖 方法 shouldAutorotateToInterfaceOrientation and willRotateToInterfaceOrientation 接到电话
  • Unity Transform.LookAt 仅在一个轴上

    我一直在开发一款游戏 进展非常顺利 从这里得到了一些帮助 我再次需要它 所以我正在制作一个 2D 自上而下的射击游戏 我需要我的敌人看着玩家 显然敌人会在所有轴上旋转 因此是无敌的 或者看起来很奇怪 那么 如何让它只在Z轴上旋转呢 另外 如
  • 计算序言中列表的排列

    在 序言艺术 第二版中有一个问题 您应该定义一个谓词 Even permutation Xs Ys 和类似的奇数排列 当您查询时 例如 Even permutation 1 2 3 2 3 1 和 odd permutation 1 2 3
  • 具有非常大的数字的除法

    我只是想知道在处理大数字时有哪些不同的除法策略 我所说的大数字是指 50 位数字 例如 9237639100273856744937827364095876289200667937278 82637448262718273966299344
  • 使用 SqlBulkCopy 和 F# 在 SQL 中导出矩阵

    我想将大量数据从 F 传输到 SQL 表 基本上我的 F 代码创建了一个三列矩阵 UserID ProductID and price 和N行 我想将其 复制 粘贴 到数据库中 我尝试了多种选择 但最终 从 F 传输数据非常慢 10000
  • R 和 Python 中 LU 分解结果不一致

    我有以下矩阵A in R 1 2 3 4 1 1 1527778 0 4444444 0 375 0 3333333 2 0 5555556 1 4888889 0 600 0 3333333 3 0 6250000 0 4000000 1

随机推荐

  • Clang 可以使用 GCC 编译的 .a 库来编译代码吗?

    我的项目目前在 gcc 下编译 它使用Boost ZeroMQ作为静态 a图书馆和一些 so像 SDL 这样的库 我想一路叮当响 但不是现在 我想知道是否可以编译使用的代码 a and so在 gcc 下用 clang 编译的库 是的 就是
  • 如何从 Node.js 打开终端应用程序?

    我希望能够打开Vim从终端中运行的node js程序中 创建一些内容 保存并退出Vim 然后抓取文件的内容 我正在尝试做这样的事情 filename tmp tmpfile process pid editor process env ED
  • 动态将 RewriteBase 设置为当前文件夹路径

    有没有办法将 RewriteBase 设置为相对于主机根目录的当前文件夹 htaccess 文件所在的文件夹 的路径 我有一个 CMS 如果我将其移动到主机中的目录 它将无法工作 除非我将 RewriteBase 设置为相对于主机根目录的目
  • 具有不同行布局的游标适配器

    我正在尝试创建一个自定义光标适配器 它将根据光标中的某些数据使用两种不同的布局 我一直在阅读 重写 getViewTypeCount 和 getItemViewType 来实现这一点 但我似乎不知道如何实现这一点 这是我的 bindView
  • 在 pandas 数据帧中插入多索引

    我需要插入多索引数据帧 例如 这是主要数据框 a b c result 1 1 1 6 1 1 2 9 1 2 1 8 1 2 2 11 2 1 1 7 2 1 2 10 2 2 1 9 2 2 2 12 我需要找到以下结果 1 3 1 7
  • 缺少 Ionic 网络本机插件的提供程序

    我尝试过使用 Ionics 本机插件 Network 但由于据称缺少提供程序而失败 为了避免任何错误 我全新安装了 Ionic 和所需的依赖项 ionic cordova plugin add cordova plugin network
  • Glassfish 3.1.2 和 Eclipse

    我刚刚下载了 Glassfish 版本 3 1 2 这还不是正式版本 我需要这个版本 因为我的 Web 应用程序正在使用 websockets 我现在遇到的问题是 Eclipse 的 Glassfish 插件 他无法识别新的 Glassfi
  • 什么可能导致作业无法完成?

    我正在使用 C 开发一个项目 由于某种原因 当我尝试为枚举变量赋值时 分配不会发生 我会复制我的代码 但这实际上只是一个简单的作业 它是这样的 testVar MyEnum TYPE OF ENUM where testVar属于类型MyE
  • Scrapy从div中获取href

    我开始在一个小项目中使用Scrapy 但无法提取链接 每次找到该类时 我只得到 而不是 url 我错过了一些明显的东西吗 sel Selector response for entry in sel xpath div class reci
  • 如何根据

    所以我想做的是根据 div 元素的高度更改它的颜色 例如 如果 div 的高度 我只想使用 css 来实现这一点 如果可能的话 这是一个你可以信赖的渐变背景技巧background size并重复 这个想法是要么具有负的大小值 无着色 要么
  • IE,CSS:如何删除单击按钮时出现的突出显示

    在IE中看一下这个页面 我有最新版本 但在旧版本中也会发生这种情况 http tinuska vibraflex cz http tinuska vibraflex cz 在上面的链接中 页面底部有两个圆形按钮 单击该按钮时 按钮周围会出现
  • 如何在 Windows 上为 PyCharm 配置 Python Kivy?

    我在让 Kivy 在 Windows 7 上与 PyCharm 配合使用时遇到问题 我已成功通过 文件 gt 设置 gt Python 解释器 gt 路径 选项卡添加了大部分外部库 我使用的是 Kivy 版本的 Python 当我运行一个
  • 没有已知的从指针到引用到指针的转换

    我遇到以下 g 错误 Menu hpp 66 41 error no matching function for call to Menu Stack
  • C++ 中的免费分析? [复制]

    这个问题在这里已经有答案了 可能的重复 您最喜欢的分析工具是什么 针对 C https stackoverflow com questions 26663 whats your favorite profiling tool for c 在
  • 有没有办法使用 css3 calc 在屏幕中央放置一个对话框?

    我正在尝试使用以下内容 div class center div CSS center position absolute height 50px width 50px background red top calc 50 50px 2 l
  • 如何使用 Bitmap.getBitmapResource() 访问存储在 Blackberry 中的图像?

    我想访问存储在黑莓中的图像 例如位置 store home user image png 现在我可以访问这个图像 String filePath file store home user image png Bitmap image Bit
  • Swift 包管理器和 Xcode:保留 Xcode 设置?

    我正在使用 Swift 开发服务器并使用 Swift 包管理器 当我在 Mac OS 系统上进行开发时 发现它很方便生成 Xcode 项目以使用 Xcode 作为我的 IDE 即 有时 我的包依赖项必须更新 我一直在使用swift pack
  • 如何在 Scala 中定义返回 Java 对象的方法?

    我想在 scala 单例类中定义一个私有方法 如下所示 private def createDomNode tag String attrs Map String String DomNode DomNode 是 Java 类型 而不是 s
  • Ember JS,解析 Transformer 处理事件 `didCommit` 中的数据时出错,状态为 root.loaded.updated.uncommissed。”

    我在 Ember Transformer 尝试在序列化函数中解析日期时遇到错误 错误信息 尝试处理事件didCommit在 上 同时处于 root loaded updated uncommissed 状态 奇怪的是 数据被正确解析后传输到
  • 如何插值旋转?

    我有两个描述旋转的向量 起始旋转 A 和目标旋转 B 我如何最好地通过因子 F 对 A 进行插值以接近 B 当需要插值多个维度时 即产生不需要的旋转 在向量上使用简单的 lerp 不起作用 也许从旋转向量构建四元数并使用Slerp http