简介
aabbdd
是一个处理 AABB(Axis Aligned Bounding Box)和 OBB(oriented bounding box)的 JavaScript 库。它提供了一些方便的方法来进行一些常见的计算和操作。这个库主要应用在游戏和图形中,但它也可以愉快地用于其他领域。
如果你不了解 AABB 和 OBB,这里提供一些快速的定义。AABB 是一个框,其所有边平行于坐标轴。每条边都与另一条边相交于正交角,这使其比其他类型的边界框更容易处理。OBB 也是一个框,但它不需要所有边都平行于坐标轴。这使其能够更好地适应不同的物体形状。但是,处理 OBB 需要更复杂的计算。
安装
使用 npm 安装 aabbdd
:
--- ------- ------
使用方法
类
aabbdd
中有两个类,分别是 AABB
和 OBB
。AABB
表示 AABB 框,OBB
表示 OBB 框。你可以使用 new
操作符创建它们的实例:
------ - ----- --- - ---- --------- ----- ---- - --- ------- -- -------- --------- - ------ -- ----- --- - --- ------ -- -------- ---------------- - ----- --
方法
这里是一些 AABB
和 OBB
可以使用的方法:
set(x, y, width, height)
这个方法将会为 AABB
或 OBB
实例设置它们的初始位置和大小。对于 AABB
,它将设置坐标和宽高,对于 OBB
,它将还需要一个角度。
----- ---- - --- ------------- -- ---- ---- ----- --- - --- ------------ -- ---- --- ------- - ---
intersects(aabb/obb)
这个方法将检查两个框是否重叠。它将返回一个布尔值,指示它们是否有交集。
----- ----- - --- ------------- -- ---- ---- ----- ----- - --- -------------- --- --- ---- ------------------------------------- -- ---- ----- ---- - --- ------------ -- ---- --- ------- - --- ----- ---- - --- ------------- --- --- --- ------- - --- ----------------------------------- -- ----
contains(x, y)
这个方法将检查一个点是否在框之内。它将返回一个布尔值,指示该点是否在框内。
----- ---- - --- ------------- -- ---- ---- ----------------------------- ----- -- ---- ----- --- - --- ------------ -- ---- --- ------- - --- ---------------------------- ----- -- ----
clone()
这个方法将创建并返回当前实例的一个副本。
----- ----- - --- ------------- -- ---- ---- ----- ----- - -------------- ----------------- --- ------- -- -----
transform(matrix)
这个方法将应用一个变换矩阵到当前实例。对于 AABB
,它将只影响其位置。对于 OBB
,它将对其位置和角度进行影响。
----- ---- - --- ------------- -- ---- ---- ---------------- -- -- -- - ---------------- - --- ----------------- - --- ---------------- - --- ---------------- - --- -- -- ---
getPoints()
这个方法将返回组成框的四个点的坐标。
----- ---- - --- ------------- -- ---- ---- ------------------------------ -- - -- --- -- -- --- -- --- ---- -- --- -- --- ---- -- ---- -- --- -- -- ---- -- -
getEdges()
这个方法将返回组成框的四个边。
----- ---- - --- ------------- -- ---- ---- ----------------------------- -- - -- ---- -- -- --- --- ---- -- ---- -- ---- ---- -- --- --- ---- -- ----- -- ---- ---- -- ---- --- -- -- ----- -- ---- -- -- ---- --- -- -- ---- -- -
getVertices()
这个方法将返回组成框的四个顶点。
----- --- - --- ------------ -- ---- --- ------- - --- ------------------------------- -- - -- --- ------------------- -- -------------------- -- --- ------------------- -- -------------------- -- --- ------------------- -- ------------------- -- --- ------------------- -- ------------------- -- -
结论
aabbdd
是一个非常有用的库,如果你需要处理 AABB 和 OBB,这个库是一个很好的选择。它提供了一些方便的方法来进行一些常见的计算和操作。同时,这个库也有很好的注释,对于对此感兴趣的人来说,可以随时学习。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/600567bf81e8991b448e4028