Class BoundingBox
Gói: @aspose/3d (v24.12.0)
BoundingBox đại diện cho một hộp bao trùm theo trục (AABB) trong không gian 3D. Nó lưu trữ một minimum đỉnh và một maximum đỉnh dưới dạng các đối tượng đơn giản với x, y, z các trường. Một đối tượng mới được tạo BoundingBox() không có đối số sẽ ở trạng thái “null” — minimum trả về +Infinity và maximum trả về -Infinity — và mở rộng đúng khi các điểm được thêm qua merge(). BoundingBox được xuất khẩu từ @aspose/3d/utilities đường dẫn phụ.
export class BoundingBoximport { BoundingBox } from '@aspose/3d/utilities';Enumerations
Tính toán một bounding box cho một tập hợp các điểm.
import { BoundingBox, Vector3 } from '@aspose/3d/utilities';
const points = [
new Vector3(-1, 0, -1),
new Vector3(1, 2, 1),
new Vector3(0, -0.5, 0),
];
const bbox = new BoundingBox();
for (const p of points) {
bbox.merge(p);
}
console.log(`Min: (${bbox.minimum.x}, ${bbox.minimum.y}, ${bbox.minimum.z})`);
// Min: (-1, -0.5, -1)
console.log(`Max: (${bbox.maximum.x}, ${bbox.maximum.y}, ${bbox.maximum.z})`);
// Max: (1, 2, 1)
const c = bbox.center;
console.log(`Center: (${c.x}, ${c.y.toFixed(3)}, ${c.z})`);
// Center: (0, 0.750, 0)
Enumerations
| Enumerations | Enumerations |
|---|---|
new BoundingBox() | Tạo một hộp bao trùm null. Mở rộng khi merge() được gọi. |
new BoundingBox(minimum, maximum) | Tạo một hộp từ hai {x, y, z} đối tượng góc. |
new BoundingBox(minX, minY, minZ, maxX, maxY, maxZ) | Tạo một hộp từ sáu thành phần vô hướng. |
Thuộc tính tĩnh
| Enumerations | Enumerations | Enumerations |
|---|---|---|
BoundingBox.null | BoundingBox | Một hộp bao null (không có phạm vi, chưa được khởi tạo). |
BoundingBox.infinite | BoundingBox | Một hộp bao phủ toàn bộ phạm vi số từ -Infinity đến +Infinity. |
Enumerations
Tên quan trọng: BoundingBox sử dụng minimum và maximum — không min và max.
| Enumerations | Enumerations | Enumerations |
|---|---|---|
minimum | {x: number, y: number, z: number} (chỉ đọc) | Góc có giá trị x, y, z nhỏ nhất. Trả về +Infinity trên mỗi trục khi hộp là null. |
maximum | {x: number, y: number, z: number} (chỉ đọc) | Góc có giá trị x, y, z lớn nhất. Trả về -Infinity trên mỗi trục khi hộp là null. |
center | {x: number, y: number, z: number} (chỉ đọc) | Trung tâm hình học, được tính bằng (minimum + maximum) / 2. Trả về (0, 0, 0) khi null. |
size | {x: number, y: number, z: number} (chỉ đọc) | Kích thước của hộp: maximum - minimum theo mỗi trục. |
extent | BoundingBoxExtent (chỉ đọc) | Nửa kích thước dọc theo mỗi trục. Mỗi trường là Math.abs(size / 2). |
Enumerations
merge(point)
Mở rộng hộp bao để bao gồm một điểm. Chấp nhận một {x, y, z} đối tượng, một Vector3, một mảng gồm 3 số, hoặc ba (x, y, z) đối số.
merge(point: Vector3 | {x: number, y: number, z: number}): void
merge(x: number, y: number, z: number): voidEnumerations
import { BoundingBox, Vector3 } from '@aspose/3d/utilities';
const bb = new BoundingBox();
bb.merge(new Vector3(2, 3, 4));
bb.merge(-1, 0, 0);
console.log(`Min X: ${bb.minimum.x}`); // Min X: -1
console.log(`Max Y: ${bb.maximum.y}`); // Max Y: 3
contains(arg)
Enumerations true nếu điểm hoặc hộp bao được cho hoàn toàn nằm trong hộp này. Chấp nhận một {x, y, z} đối tượng điểm, một Vector3, hoặc một BoundingBox.
contains(arg: Vector3 | {x: number, y: number, z: number} | BoundingBox): booleanEnumerations
import { BoundingBox, Vector3 } from '@aspose/3d/utilities';
const bb = new BoundingBox(-1, -1, -1, 1, 1, 1);
console.log(bb.contains(new Vector3(0, 0, 0))); // true
console.log(bb.contains(new Vector3(2, 0, 0))); // false
overlapsWith(box)
Enumerations true nếu hộp bao này chồng lên một hộp khác BoundingBox (các cạnh chạm nhau cũng được tính là chồng lên nhau).
overlapsWith(box: BoundingBox): booleanscale()
Trả về giá trị tọa độ tuyệt đối lớn nhất trên tất cả các góc, đại diện cho tỉ lệ chi phối của hộp bao. Trả về 0 khi hộp là null.
scale(): numberBoundingBoxExtent
BoundingBoxExtent là một lớp đồng hành được trả về bởi BoundingBox.extent. Nó lưu trữ nửa kích thước dọc theo mỗi trục.
| Enumerations | Enumerations | Enumerations |
|---|---|---|
extentX | number | Nửa chiều rộng dọc theo X. |
extentY | number | Nửa chiều cao dọc theo Y. |
extentZ | number | Nửa chiều sâu dọc theo Z. |