Camera
Methods: aspose.threed.entities (aspose-3d-foss)
Camera یک Entity که یک نقطهنظر را در یک صحنهٔ سهبعدی تعریف میکند. این کنترل میکند که صحنه چگونه بر روی صفحهٔ تصویر دوبعدی پروجکت شود. یک دوربین به یک Node برای موقعیتیابی و جهتدهی آن در صحنه.
class Camera(Entity):Methods
A3DObject → SceneObject → Entity → Camera
نکات پیادهسازی
در این نسخه از aspose-3d-foss، Camera کلاس یک قالب اعلان. فقط projection_type و name بهصورت عملکردی ذخیره شده و قابل بازیابی هستند. تمام ویژگیهای دیگر ( «<SEG_2»> ، و غیره) setterهایی دارند که هیچ کاری انجام نمیدهند؛ مقادیر اختصاص داده شده حفظ نمیشوند. خواندن مجدد این ویژگیها مقدار پیشفرض کلاس را برمیگرداند، صرفنظر از آنچه اختصاص داده شده بود.near_plane, far_plane, field_of_view, aspect_ratio, و غیره) setterهایی دارند که هیچ کاری انجام نمیدهند؛ مقادیر اختصاص داده شده حفظ نمیشوند. خواندن مجدد این ویژگیها مقدار پیشفرض کلاس را برمیگرداند، صرفنظر از آنچه اختصاص داده شده بود.
هنگام وارد کردن دادههای دوربین از یک فایل سهبعدی (glTF، FBX)، projection_type بهدرستی تجزیه میشود. سایر ویژگیهای دوربین در دسترس هستند اگر فرمت آنها را بهعنوان متادیتای گراف صحنه ذخیره کند.
Methods
Camera(name: str = None, projection_type: str = "PERSPECTIVE")| Methods | Methods | Methods | Methods |
|---|---|---|---|
name | `str | None` | None |
projection_type | str | "PERSPECTIVE" | نوع اولیه پروجکشن. استفاده کنید ProjectionType.PERSPECTIVE یا ProjectionType.ORTHOGRAPHIC. |
Methods
| Methods | Methods | Methods |
|---|---|---|
projection_type | str | حالت پروجکشن: "PERSPECTIVE" یا "ORTHOGRAPHIC". تنظیم با ProjectionType ثابتها. |
near_plane | float | فاصله تا صفحه برش نزدیک. هندسهای که نزدیکتر از این باشد رندر نمیشود. پیشفرض 0.1. |
far_plane | float | فاصله تا صفحه برش دور. هندسهای که دورتر از این باشد رندر نمیشود. پیشفرض 1000.0. |
field_of_view | float | زاویه دید عمودی بر حسب درجه (فقط دوربینهای پرسپکتیو). پیشفرض 0.0. |
field_of_view_x | float | زاویه دید افقی بر حسب درجه. پیشفرض 0.0. |
field_of_view_y | float | زاویه دید عمودی بر حسب درجه (همانند field_of_view). پیشفرض 0.0. |
aspect_ratio | float | نسبت عرض به ارتفاع تصویر خروجی. پیشفرض 1.0. |
ortho_height | float | ارتفاع حجم نمای ارتوگرافیک به واحدهای جهان (فقط دوربینهای ارتوگرافیک). پیشفرض 100.0. |
name | str | نام شیء دوربین. |
مثالهای استفاده
Methods: در این نسخه، فقط projection_type بهصورت عملکردی ذخیره میشود. تخصیصهای ویژگی برای near_plane, far_plane, field_of_view,، و aspect_ratio پذیرفته میشوند بدون خطا اما ذخیره نمیشوند.
دوربین پرسپکتیو
from aspose.threed import Scene
from aspose.threed.entities import Camera
from aspose.threed.entities import ProjectionType
scene = Scene()
# projection_type is stored and saved
cam = Camera("MainCamera", ProjectionType.PERSPECTIVE)
node = scene.root_node.create_child_node("camera", cam)
# Position the camera using node transform (this does persist)
node.transform.set_translation(0.0, 5.0, 20.0)
scene.save("scene-with-camera.glb")دوربین ارتوگرافیک
from aspose.threed import Scene, FileFormat
from aspose.threed.entities import Camera, ProjectionType
scene = Scene()
# Only projection_type is retained; other property assignments are no-ops
cam = Camera("OrthoCamera", ProjectionType.ORTHOGRAPHIC)
scene.root_node.create_child_node("ortho_cam", cam)
scene.save("ortho-scene.glb", FileFormat.GLTF)خواندن دوربین پس از وارد کردن
from aspose.threed import Scene
from aspose.threed.entities import Camera
scene = Scene()
scene.open("model.glb")
for node in scene.root_node.child_nodes:
if isinstance(node.entity, Camera):
cam = node.entity
# projection_type is reliably populated; other numeric properties
# return default values (0.0 / 1.0) regardless of file content
print(f"Camera '{cam.name}': {cam.projection_type}")