mcpField
T
threejs-math

threejs-math

github.com/full-stack-skills开发10358 次安装4 周前更新
代码仓库

关于 threejs-math

threejs-math 是面向 Agent 的技能,用于解答 three.js 数学类型和空间查询问题。它区分基础数学、拾取与动画工作流,并提供相关文档和实践指引。

主要功能

  1. 01介绍向量、矩阵和四元数
  2. 02说明包围体与相交检测
  3. 03指导射线、平面和视锥查询
  4. 04指向附加组件中的数学结构

适用场景

  1. 01分析局部与世界变换
  2. 02检查对象边界和包含关系
  3. 03测试射线与几何体的相交

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/full-stack-skills/threejs-skills --skill threejs-math

安装后在 Claude Code 中输入/threejs-math确认已加载。

附带文件agents/openai.yamlexamples/workflow-ray-aabb.md

详细介绍

何时使用此技能

用户提到以下内容时,始终使用此技能:

  • 向量/矩阵运算顺序、applyQuaternion、lookAt、世界变换与局部变换
  • 包围体 Box3/Sphere、包含/相交测试
  • Ray 与 Plane、Frustum 测试(不涉及完整的拾取流程)

重要:数学 vs 对象 vs 动画

需求技能
原始数学类型threejs-math
Raycaster + 图层拾取threejs-objects
QuaternionKeyframeTrack 播放threejs-animation

触发短语包括:

  • "Vector3"、"Matrix4"、"Quaternion"、"Box3"、"Ray"、"Frustum"
  • "向量"、"矩阵"、"四元数"、"包围盒"

如何使用此技能

  1. 约定:按照 three.js 示例,在左侧乘以矩阵;进行世界空间查询前调用 updateMatrixWorld(threejs-objects)。
  2. 包围体:使用 Box3().setFromObject(object) 获取粗略边界;再根据需要细化。
  3. 碰撞类检查:根据文档使用 ray.intersectBox、sphere.containsPoint 等。
  4. 附加组件结构:用于游戏的 Octree/OBB——引用附加组件页面,避免在此处复制完整的 API 表格。
  5. 颜色:Color 转换与材质/纹理有关——添加交叉链接。
  6. 随机采样:使用 MeshSurfaceSampler 在网格上分布点。

参见 examples/workflow-ray-aabb.md。

文档索引(官方)

文档部分代表性链接
数学https://threejs.org/docs/Vector3.html
数学https://threejs.org/docs/Matrix4.html
数学https://threejs.org/docs/Quaternion.html
数学https://threejs.org/docs/Ray.html

范围

  • 涵盖内容: 核心数学类型;附加组件数学条目作为指引。
  • 不涵盖内容: 超出类型引用范围的关键帧轨道求值(动画技能)。

常见问题和最佳实践

  • 欧拉角万向节死锁——任意旋转优先使用四元数。
  • 在高频循环中复用临时向量可减少 GC 抖动。
  • 视锥体剔除辅助工具各不相同——请针对你的 three 版本进行验证。

文档和版本

核心数学类型列在 Math 下;附加组件实用工具(Octree、OBB 等)位于 three.js 文档 的 Addons → Math 下。Global 也列出了有时需要与材质搭配使用的常量(例如包裹、混合)。

Agent 回复检查清单

使用此技能回答时,优先采用以下做法:

  1. 从文档链接到具体类型(Vector3、Matrix4、Quaternion 等)。
  2. 对于按时间采样的情况,将 AnimationMixer / 轨道数学问题交由 threejs-animation。
  3. 目标为交互时,将 Raycaster 拾取流程交由 threejs-objects。
  4. 在比较涉及数值稳定性时,提及 epsilon。
  5. 用户需要面向游戏的结构时,指向 Addons → Math,了解空间加速结构。

参考资料

关键词

英文: vector、matrix、quaternion、euler、box3、sphere、ray、frustum、three.js

中文: 向量、矩阵、四元数、欧拉角、包围盒、射线、three.js

评论

支持 Markdown