BoundingBox — Aspose.3D FOSS for Python API Reference

Enumerations

BoundingBox adalah kotak sempadan selari paksi (AABB) yang ditakrifkan oleh dua Vector3 bucu: minimum (x, y, z terendah) dan maximum (x, y, z tertinggi). Ia digunakan untuk pertanyaan spatial seperti ujian titik-dalam-kotak, pembantu pemotongan frustum, dan anggaran saiz peringkat adegan.

Sebuah BoundingBox boleh berada dalam null (keadaan kosong/tidak diinisialisasi) apabila dibuat tanpa argumen. Memanggil merge() pada kotak null menginisialisasinya daripada titik atau kotak pertama yang diberikan.

Enumerations: aspose.threed.utilities

from aspose.threed.utilities import BoundingBox, Vector3

Enumerations

EnumerationsEnumerations
BoundingBox()Kotak sempadan Null (kosong)
BoundingBox(minimum, maximum)Membina daripada dua Vector3 sudut
BoundingBox(min_x, min_y, min_z, max_x, max_y, max_z)Membina daripada enam nilai skalar

Enumerations

EnumerationsEnumerationsEnumerations
minimumVector3Sudut dengan nilai x, y, z terkecil. Mengembalikan (+inf, +inf, +inf) untuk kotak null
maximumVector3Sudut dengan nilai x, y, z terbesar. Mengembalikan (-inf, -inf, -inf) untuk kotak null
centerVector3Titik tengah antara minimum dan maximum; (0,0,0) untuk kotak null
sizeVector3Jangkauan per paksi (maximum - minimum); (0,0,0) untuk kotak null

Kaedah Kilang Statik

EnumerationsJenis PulanganEnumerations
BoundingBox.get_null()BoundingBoxMengembalikan kotak sempadan null (kosong)
BoundingBox.get_infinite()BoundingBoxMengembalikan kotak sempadan tak terhingga yang meliputi seluruh ruang

Kaedah Instans

EnumerationsJenis PulanganEnumerations
merge(point)NoneMengembangkan kotak untuk menyertakan Vector3, Vector4, atau yang lain BoundingBox
merge(x, y, z)NoneMengembangkan kotak untuk memasukkan titik (x, y, z)
contains(point)boolEnumerations True jika Vector3 titik berada di dalam atau pada sempadan
contains(box)boolEnumerations True jika box sepenuhnya berada dalam kotak ini
overlaps_with(box)boolEnumerations True jika dua kotak berpotongan
scale()floatMengembalikan nilai koordinat mutlak terbesar — berguna sebagai anggaran skala adegan kasar

Enumerations

from aspose.threed.utilities import BoundingBox, Vector3

# Build a bounding box from a list of points
bb = BoundingBox()
points = [
    Vector3(0.0, 0.0, 0.0),
    Vector3(1.0, 2.0, 3.0),
    Vector3(-1.0, 0.5, 1.5),
]
for p in points:
    bb.merge(p)

print(bb.minimum)   # Vector3(-1.0, 0.0, 0.0)
print(bb.maximum)   # Vector3(1.0, 2.0, 3.0)
print(bb.center)    # Vector3(0.0, 1.0, 1.5)
print(bb.size)      # Vector3(2.0, 2.0, 3.0)

# Point containment
print(bb.contains(Vector3(0.5, 1.0, 1.5)))   # True
print(bb.contains(Vector3(5.0, 0.0, 0.0)))   # False

# Box containment
inner = BoundingBox(Vector3(0, 0, 0), Vector3(0.5, 0.5, 0.5))
print(bb.contains(inner))   # True

# Overlap test
other = BoundingBox(Vector3(0.5, 0.5, 0.5), Vector3(2.0, 2.0, 2.0))
print(bb.overlaps_with(other))   # True

# Retrieve from a node
from aspose.threed import Scene
from aspose.threed.entities import Mesh
from aspose.threed.utilities import Vector4

scene = Scene()
mesh = Mesh()
mesh.control_points.append(Vector4(-1, 0, 0, 1))
mesh.control_points.append(Vector4( 1, 0, 0, 1))
mesh.control_points.append(Vector4( 0, 1, 0, 1))
mesh.create_polygon(0, 1, 2)
node = scene.root_node.create_child_node("tri", mesh)
node_bb = node.get_bounding_box()
print(node_bb.minimum)
print(node_bb.maximum)

Lihat Juga

 Bahasa Melayu