四元数,四叉树的理解

本文介绍了四元数的概念,它是复数的三维扩展,用于实现三维空间的旋转。同时,文章还探讨了四叉树的原理,它通过矩形划分二维空间,并递归存储数据,通常数据存于叶子节点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

四元数

四元数是复数向三维的扩充扩展,使用复数乘法来实现旋转。具体参考如下:
Understanding Quaternions
Understanding Quaternions 中文翻译

四叉树

其实就是将二维空间使用矩形大小来表示,每个结点分为 0:LeftUp, 1:LeftDown, 2:RightUp, 3:RightDown,然后递归存储数据,一般数据存储在叶子节点,也可以进行改进,可参考如下:

#include <list>
using std::list;

#define TREE_DEPTH 3
#define MIN_NODE_SIZE 0.1
#define SAFE_DELETE(p) do {delete (p); (p)  = NULL;} while (false)  

template<typename T> class QuadNode
{
protected:
	float m_left, m_right, m_up, m_down;
	list<T*> m_dataList;
	QuadNode* m_child[4] = { NULL, NULL, NULL, NULL }; //0:LeftUp, 1:LeftDown, 2:RightUp, 3:RightDown
public:
	QuadNode(float left, float right, float up, float down) :
		m_left(left), m_right(right), m_up(up), m_down(down) {}
	~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值