本地坐标与全局坐标有啥不同
时间: 2023-11-29 16:05:48 浏览: 38
在计算机图形学中,本地坐标和全局坐标是两个很重要的概念。
本地坐标是相对于某个对象自身的坐标系而言的,以该对象的中心点为原点,以其自身的轴向为坐标轴。例如,一个立方体的本地坐标系的原点在其中心,而x、y、z轴分别沿着立方体的三个边。
全局坐标是相对于整个场景或世界坐标系而言的,以整个场景的某个点为原点,以固定的轴向为坐标轴。例如,一个场景的全局坐标系原点可能是该场景的中心,而x、y、z轴则分别代表该场景的前后、左右和上下方向。
因此,本地坐标和全局坐标之间的差异在于它们的参照系不同。本地坐标是相对于对象自身的坐标系而言的,而全局坐标是相对于整个场景或世界坐标系而言的。在计算机图形学中,我们需要在这两个坐标系之间进行转换,以便正确地定位和渲染对象。
相关问题
cocos creator中本地坐标如何转化为全局坐标
在 Cocos Creator 中,可以使用节点的 `convertToWorldSpaceAR` 方法将节点的本地坐标转换为全局坐标。该方法接受一个 `Vec2` 类型的参数,表示本地坐标系下的位置,返回一个 `Vec2` 类型的值,表示全局坐标系下的位置。
以下是一个示例代码:
```typescript
// 获取节点
const node = this.node.getChildByName('MyNode');
// 获取 MyNode 节点在全局坐标系下的位置
const globalPos = node.convertToWorldSpaceAR(cc.v2(0, 0));
// 输出全局坐标系下的位置
console.log(`Global position: (${globalPos.x}, ${globalPos.y})`);
```
在上面的代码中,我们首先获取了一个名为 MyNode 的节点。然后,使用 `convertToWorldSpaceAR` 方法将 `cc.v2(0, 0)` 表示的本地坐标系下的位置转换为全局坐标系下的位置,并将结果存储在 `globalPos` 变量中。最后,输出 `globalPos` 变量的值,即可得到 MyNode 节点在全局坐标系下的位置。
laya世界坐标与本地坐标转换的函数
LayaAir引擎提供了两个函数用于世界坐标与本地坐标的转换,分别是:
1. `pointToLocal(point: Point, createNewPoint?: boolean, global?: boolean): Point`
该函数用于将世界坐标系中的点转换为当前节点的本地坐标系中的点。
参数解释:
- `point`:要转换的点。
- `createNewPoint`:是否创建一个新的点对象,如果为 true,则返回一个新的点对象,否则会修改传入的 point 对象。默认为 false。
- `global`:是否使用全局坐标系进行计算。默认为 false,即使用本地坐标系进行计算。
示例代码:
```typescript
// 获取当前节点
let node = this.owner;
// 创建一个世界坐标系中的点
let worldPoint = new Laya.Point(100, 100);
// 将世界坐标系中的点转换为本地坐标系中的点
let localPoint = node.pointToLocal(worldPoint);
```
2. `localToGlobal(point: Point, createNewPoint?: boolean, global?: boolean): Point`
该函数用于将当前节点的本地坐标系中的点转换为世界坐标系中的点。
参数解释:
- `point`:要转换的点。
- `createNewPoint`:是否创建一个新的点对象,如果为 true,则返回一个新的点对象,否则会修改传入的 point 对象。默认为 false。
- `global`:是否使用全局坐标系进行计算。默认为 false,即使用本地坐标系进行计算。
示例代码:
```typescript
// 获取当前节点
let node = this.owner;
// 创建一个本地坐标系中的点
let localPoint = new Laya.Point(100, 100);
// 将本地坐标系中的点转换为世界坐标系中的点
let worldPoint = node.localToGlobal(localPoint);
```