npm 包 aabbdd 使用教程

简介

aabbdd 是一个处理 AABB(Axis Aligned Bounding Box)和 OBB(oriented bounding box)的 JavaScript 库。它提供了一些方便的方法来进行一些常见的计算和操作。这个库主要应用在游戏和图形中,但它也可以愉快地用于其他领域。

如果你不了解 AABB 和 OBB,这里提供一些快速的定义。AABB 是一个框,其所有边平行于坐标轴。每条边都与另一条边相交于正交角,这使其比其他类型的边界框更容易处理。OBB 也是一个框,但它不需要所有边都平行于坐标轴。这使其能够更好地适应不同的物体形状。但是,处理 OBB 需要更复杂的计算。

安装

使用 npm 安装 aabbdd

--- ------- ------

使用方法

aabbdd 中有两个类,分别是 AABBOBBAABB 表示 AABB 框,OBB 表示 OBB 框。你可以使用 new 操作符创建它们的实例:

------ - ----- --- - ---- ---------

----- ---- - --- ------- -- -------- --------- - ------ --
----- --- - --- ------ -- -------- ---------------- - ----- --

方法

这里是一些 AABBOBB 可以使用的方法:

set(x, y, width, height)

这个方法将会为 AABBOBB 实例设置它们的初始位置和大小。对于 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


猜你喜欢

  • npm 包 @ourtownrentals/geocore-s3image 使用教程

    前言 在现代 web 开发中,图片是无法避免的一部分,特别是在房地产领域网站开发中,地图、房源图片的加载和管理是必须要考虑的一部分。 @ourtownrentals/geocore-s3image 是...

    3 年前
  • npm 包 asey-whiteboard 使用教程

    前言 前端开发中,涉及到白板绘图等操作的情况比较常见。为了方便开发者快速、高效地实现这一需求,有很多相关工具和框架。其中,asey-whiteboard 就是一个非常不错的 npm 包。

    3 年前
  • NPM 包 `avet-mobile-flexible` 使用教程

    avet-mobile-flexible 是一个用于实现移动端自适应布局的 NPM 包。它结合了 lib-flexible 和 postcss-pxtorem 这两个工具来实现页面在不同设备上的自适应...

    3 年前
  • npm 包 react-native-draggable-holder 使用教程

    介绍 react-native-draggable-holder 是一个 React Native 组件,可以快速实现拖拽调整位置的功能。其提供了丰富的 API 和样式配置,可以轻松实现你的拖拽需求。

    3 年前
  • npm 包 colorful-kanji 使用教程

    引言 在前端开发中,我们经常需要使用一些有趣、好看的样式来装饰网站UI。而对于一些跨文化的网站,比如涉及日本文化的网站,我们可能需要使用一些日文汉字来作为装饰元素。

    3 年前
  • npm 包 alexa-conversation 使用教程

    前言 在开发 Alexa 技能时,我们需要强制性地按照 Alexa 提供的技能模板(skill template)来编写,并且一旦上传到 AWS Lambda 后就不能轻易修改,这让新手开发者体验很不...

    3 年前
  • npm 包 icon-font-plugin 使用教程

    随着前端技术的不断发展,iconfont 成为了一个常见的设计元素。它不仅可以为网站和应用程序添加视觉吸引力,还可以帮助开发人员提高工作效率。但是在使用 iconfont 的同时,我们也遇到了一些问题...

    3 年前
  • npm 包 lumine-signal 使用教程

    前言 随着前端技术的发展,越来越多的开发者开始使用 npm 作为前端开发的包管理工具,以此来提高代码的可读性和可维护性。作为 npm 上的一款轻量级前端组件库,lumine-signal 受到了广大开...

    3 年前
  • npm 包 postcss-reexport 使用教程

    postcss-reexport 是一个基于 PostCSS 的插件,能够自动化地将 CSS 类名导出为 JavaScript 模块。这个插件可以帮助我们更好地组织 CSS 代码,并提高代码的可复用性...

    3 年前
  • npm 包 object-extensions 使用教程

    前言 在前端开发中,经常需要处理对象。经典的例子是深度比较两个对象是否相同,或者筛选出一个对象数组中满足条件的元素。JavaScript 原生提供了一些方法,但是有时候它们用起来非常繁琐。

    3 年前
  • npm 包 angular2-rotas 使用教程

    介绍 Angular2-rotas是一个简单易用的Angular2路由管理器。它允许您在应用程序中创建和管理路由,使您的应用程序具有良好的组织结构和易于维护的代码。

    3 年前
  • npm 包 redux-nested-bind-actions 使用教程

    在前端开发中,Redux 是一个常用的状态管理库。但是,Redux 状态管理可以变得相当复杂,特别是当您的 Redux Store 以及相关的 Action 和 Reducer 变得越来越多时。

    3 年前
  • npm 包 @krzysztofkarol/redux-form 使用教程

    在前端开发中,表单是一个不可避免的组件。而 Redux Form 则是一个非常强大的工具,可以帮助我们更有效地处理表单。本文将介绍 @krzysztofkarol/redux-form 这个 npm ...

    3 年前
  • npm包edpx-css-loader使用教程

    在前端开发中,使用npm包来管理依赖是非常常见和方便的做法。而edpx-css-loader是一个特别有用的npm包,在构建页面时可以帮助我们处理css文件,让我们的工作更加高效。

    3 年前
  • npm 包 @metaparticle/sync 使用教程

    在前端开发中,我们经常需要通过多个页面或组件之间共享数据,或者实现数据的实时同步。而在大多数情况下,我们都需要手动实现这种功能,这会增加我们的工作量并引入潜在的问题。

    3 年前
  • npm 包 carbon-grid 使用教程

    Carbon Grid 是一个基于 CSS Grid 布局的网格系统,适合用于结构简单的网站和应用。它提供了一系列 CSS 类,可以很方便地搭建响应式的布局。本文介绍如何使用 Carbon Grid。

    3 年前
  • npm 包 xd502djj 使用教程

    在前端开发过程中,我们经常需要使用各种 npm 包来提高效率和优化代码,其中一个常用的 npm 包就是 xd502djj。这个包提供了很多实用的功能,比如数字格式化、时间格式化、DOM 操作等。

    3 年前
  • NPM包 lpchat-models 使用教程

    简介 在现代Web应用程序的前端开发中,使用NPM是一种非常重要的方式。NPM是Node.js包管理器,它允许前端工程师寻找并安装代码包。本篇文章将详细介绍一个常用的npm包:lpchat-model...

    3 年前
  • npm 包 react-cards-stack 使用教程

    简介 在现代前端开发中,React 是一种流行的框架,它可以快速构建复杂的用户界面。同时,npm 是一个用于管理 JavaScript 包的工具,许多第三方 React 包都可以在 npm 上获取。

    3 年前
  • npm包reminders-menu-bar使用教程

    引言 在前端开发过程中,我们经常需要使用一些工具或插件来提高我们的效率或优化我们的开发体验。npm是一个包管理器,可以用来管理和发布各种前端开发所需的包。reminders-menu-bar是一种np...

    3 年前

相关推荐

    暂无文章