Class BoundingBox

الحزمة: @aspose/3d (v24.12.0)

BoundingBox يمثل صندوقًا محيطًا محاذيًا للمحور (AABB) في الفضاء ثلاثي الأبعاد. يخزن minimum زاوية و maximum زاوية ككائنات عادية مع x, y, z حقول. كائن تم إنشاؤه حديثًا BoundingBox() بدون أي معطيات يكون في الحالة “null” — minimum يرجع +Infinity و maximum يرجع -Infinity — ويتوسع بشكل صحيح عندما تُضاف النقاط عبر merge(). BoundingBox يُصدَّر من الـ @aspose/3d/utilities المسار الفرعي.

export class BoundingBox
import { BoundingBox } from '@aspose/3d/utilities';

Enumerations

احسب صندوق حدود لمجموعة من النقاط.

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

EnumerationsEnumerations
new BoundingBox()ينشئ صندوقًا حدوديًا فارغًا. يتوسع عندما merge() يُستدعى.
new BoundingBox(minimum, maximum)ينشئ صندوقًا من عنصرين {x, y, z} كائنات الزاوية.
new BoundingBox(minX, minY, minZ, maxX, maxY, maxZ)ينشئ صندوقًا من ستة مكوّنات عددية.

الخصائص الثابتة

EnumerationsEnumerationsEnumerations
BoundingBox.nullBoundingBoxصندوق حدودي فارغ (بدون امتداد، غير مبدئ).
BoundingBox.infiniteBoundingBoxصندوق يغطي كامل نطاق الأعداد من -Infinity إلى +Infinity.

Enumerations

تسمية مهمة: BoundingBox يستخدم minimum و maximum — ليس min و max.

EnumerationsEnumerationsEnumerations
minimum{x: number, y: number, z: number} (للقراءة فقط)الزاوية التي لها أصغر قيم x, y, z. تُرجِع +Infinity على كل محور عندما يكون الصندوق فارغًا.
maximum{x: number, y: number, z: number} (للقراءة فقط)الزاوية التي لها أكبر قيم x, y, z. تُرجع -Infinity على كل محور عندما يكون الصندوق فارغًا.
center{x: number, y: number, z: number} (للقراءة فقط)المركز الهندسي، يُحسب كـ (minimum + maximum) / 2. تُرجع (0, 0, 0) عند الفارغ.
size{x: number, y: number, z: number} (للقراءة فقط)أبعاد الصندوق: maximum - minimum لكل محور.
extentBoundingBoxExtent (للقراءة فقط)نصف الامتدادات على كل محور. كل حقل هو Math.abs(size / 2).

Enumerations

merge(point)

يوسع صندوق الحدود ليشمل نقطة. يقبل {x, y, z} كائن، a Vector3,، مصفوفة من 3 أرقام، أو ثلاثة منفصلة (x, y, z) وسائط.

merge(point: Vector3 | {x: number, y: number, z: number}): void
merge(x: number, y: number, z: number): void

Enumerations

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 إذا كانت النقطة أو صندوق الحدود المعطى داخل هذا الصندوق بالكامل. يقبل {x, y, z} كائن نقطة، a Vector3,، أو آخر BoundingBox.

contains(arg: Vector3 | {x: number, y: number, z: number} | BoundingBox): boolean

Enumerations

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 إذا كان هذا مربع الإحاطة يتقاطع مع آخر BoundingBox (تُحسب الحواف المتلامسة كمتقاربة).

overlapsWith(box: BoundingBox): boolean

scale()

يعيد القيمة المطلقة القصوى للإحداثيات عبر جميع الزوايا، ممثلةً المقياس السائد لمربع الإحاطة. يعيد 0 عندما يكون مربع الإحاطة فارغًا.

scale(): number

BoundingBoxExtent

BoundingBoxExtent هي فئة مرافقة تُرجع بواسطة BoundingBox.extent. يخزن نصف الامتدادات على كل محور.

EnumerationsEnumerationsEnumerations
extentXnumberنصف العرض على المحور X.
extentYnumberنصف الارتفاع على المحور Y.
extentZnumberنصف العمق على المحور Z.
 العربية