Camera

Methods: aspose.threed.entities (aspose-3d-foss)

Camera یک Entity که یک نقطه‌نظر را در یک صحنهٔ سه‌بعدی تعریف می‌کند. این کنترل می‌کند که صحنه چگونه بر روی صفحهٔ تصویر دو‌بعدی پروجکت شود. یک دوربین به یک Node برای موقعیت‌یابی و جهت‌دهی آن در صحنه.

class Camera(Entity):

Methods

A3DObjectSceneObjectEntityCamera


نکات پیاده‌سازی

در این نسخه از 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")
MethodsMethodsMethodsMethods
name`strNone`None
projection_typestr"PERSPECTIVE"نوع اولیه پروجکشن. استفاده کنید ProjectionType.PERSPECTIVE یا ProjectionType.ORTHOGRAPHIC.

Methods

MethodsMethodsMethods
projection_typestrحالت پروجکشن: "PERSPECTIVE" یا "ORTHOGRAPHIC". تنظیم با ProjectionType ثابت‌ها.
near_planefloatفاصله تا صفحه برش نزدیک. هندسه‌ای که نزدیک‌تر از این باشد رندر نمی‌شود. پیش‌فرض 0.1.
far_planefloatفاصله تا صفحه برش دور. هندسه‌ای که دورتر از این باشد رندر نمی‌شود. پیش‌فرض 1000.0.
field_of_viewfloatزاویه دید عمودی بر حسب درجه (فقط دوربین‌های پرسپکتیو). پیش‌فرض 0.0.
field_of_view_xfloatزاویه دید افقی بر حسب درجه. پیش‌فرض 0.0.
field_of_view_yfloatزاویه دید عمودی بر حسب درجه (همانند field_of_view). پیش‌فرض 0.0.
aspect_ratiofloatنسبت عرض به ارتفاع تصویر خروجی. پیش‌فرض 1.0.
ortho_heightfloatارتفاع حجم نمای ارتوگرافیک به واحدهای جهان (فقط دوربین‌های ارتوگرافیک). پیش‌فرض 100.0.
namestrنام شیء دوربین.

مثال‌های استفاده

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}")

موارد مرتبط

 فارسی