四元数c语言,C + OpenGL四元数
didierc..
6
对于你的第一个问题,我认为你的意思是"我如何代表",而不是"解释".
最简单的方法是使用struct:
typedef struct quaternion_t {
double x,y,z,w;
} quaternion_t;
请注意,如上所述,通常的做法也是使用x,y,z和w作为组件名称(但只要您知道哪个是哪个,您的命名是完全可以接受的).对组件使用双精度或单精度浮子取决于您的需求:精度或空间.
简单的操作便于实现:
void conjugate(quaternion_t *q){
q->x = -q->x;
q->y = -q->y;
q->z = -q->z;
}
double product(quaternion_t *q1, quaternion_t *q2){
return q1->x * q2->x + q1->y * q2->y + q1->z * q2->z + q1->w * q2->w;
}
double norm(quaternion_t *q){
double p = product(q,q);
return sqrt(p);
}
// etc
对于你的第二个问题,我建议你寻找一个关于该主题的好教程.同时,维基百科页面:
提供一个很好的介绍.
四元数c语言,C + OpenGL四元数相关推荐
- C语言实现四元数的乘法(三维矢量、四元数以及旋转矢量与四元数相乘源码)
四元数的乘法 四元数 四元数的运算 源码 四元数 在将三维矢量代数推广至乘法和除法运算的研究中,爱尔兰数学家.物理学家哈密顿于1843年创建了四元数((quaternion)和四元数代数.四元数是指由 ...
- C语言实现姿态四元数转旋转矢量
姿态四元数转旋转矢量 四元数 旋转矢量 源码 四元数 在将三维矢量代数推广至乘法和除法运算的研究中,爱尔兰数学家.物理学家哈密顿于1843年创建了四元数(quaternion)和四元数代数.四元数是指 ...
- 欧拉角与四元数互转,及四元数slerp球面线性插值算法
欧拉角与四元数互转,及四元数slerp球面线性插值算法 1. 欧拉角与四元数是什么? 2. 源码 2.1 欧拉角类 2.2 四元数类 2.3 欧拉角与四元数互转及球面线性插值算法 参考 1. 欧拉角与 ...
- 四元数:从复数到四元数
0.前言 所谓四元数(Quaternion),一句话说就是复数的拓展,那么四元数只是简单的维度增加的复数吗?它代表了什么样的物理意义和数学道理呢? 1.四元数的定义 四元数是复数的拓展.我们知道一个复 ...
- 四元数笔记(1)—— 四元数及其运算
文章目录 0. 四元数的前世今生 1. 四元数的一般形式 2. 四元数的加减 3. 四元数的乘积 4. 实四元数与纯四元数 5. 单位四元数 6. 四元数的二元形式 7. 四元数的共轭 8. 四元数的 ...
- 【Unity】Unity 欧拉角、四元数、万向节死锁、四元数转轴角
文章目录 欧拉角(Euler) 万向节 欧拉角旋转特性 欧拉角优点 欧拉角缺点 方位的表达方式不唯一 万向节锁(Gimbal Lock) 四元数(Quaternion) 四元数转轴角 四元数优点 四元 ...
- 对偶四元数——使用python3实现对偶四元数的符号运算 v2.0
实现对偶四元数简单的符号运算,数值运算,2.0版本 改正了v1.0中的一些错误,添加了四元数归一化,转换为齐次变换矩阵,转换为螺旋,转换为双矢量,三种共轭等功能 可以先看最后例子的效果 目录 1 创建 ...
- Unity中左手坐标系的四元数转右手坐标系中的四元数
终始的左右手坐标系时固定在一起的,所以虽然四元数不同,但是旋转轴向量与旋转角是相同的. 从基本公式出发q=cos(θ)+sin(θ)∗(i,j,k)q=cos(\theta)+sin(\theta)* ...
- C语言quaternion(四元数)(附完整源码)
quaternion四元数 quaternion四元数类型定义 geometry_datatypes.h 四元数有关的几个接口 quaternion(四元数)有关的功能的完整源码(定义,实现,main ...
最新文章
- Java类与匿名内部类
- el-tree 权限 勾选_一周新债总结,最高涨30%,10月26日起可转债交易需要先开权限...
- ps怎么一下选中多个图层_超实用!50个非常实用的PS快捷键命令大全分享
- c++ 数字后加f_c.4 计算摄氏温度
- Spinner 学习笔记
- SLF4JLoggerContext cannot be cast to LoggerContext
- 中文宾州树库标记含义
- c语言手机教程,【图片】【教程】手机c语言入门与手机c编程【mrp吧】_百度贴吧...
- ROS Kinetic 安装指南
- weblogic-修改控制台登录密码
- 利用iMazing将iOS设备的录音文件拷贝到电脑
- java语言的演化——读JavaOne ppt笔记
- 绘制ER图:PowerDesigner数据库设计软件讲解
- 马斯克:未来将尝试打造超级高铁运输系统 时速是飞机的2倍
- synchronized原理
- 单播、组播(目标广播、多播)、广播、泛洪、洪泛介绍与比较
- 计算机网络-网络安全
- MyBioSource 丨艾美捷抗C17ORF75抗体:兔C17ORF75多克隆抗体
- Python-练习 5 更多变量和打印
- 基于python的植物大战僵尸游戏开发