Camera

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

Camera هو Entity الذي يحدد نقطة مشاهدة في مشهد ثلاثي الأبعاد. يتحكم في كيفية إسقاط المشهد على سطح صورة ثنائي الأبعاد. يتم إرفاق كاميرا بـ Node لتحديد موقعها وتوجيهها في المشهد.

class Camera(Entity):

Methods

A3DObjectSceneObjectEntityCamera


ملاحظات التنفيذ

في هذا الإصدار من aspose-3d-foss، الـ Camera الفئة هي قالب إعلان. فقط projection_type و name مخزنة وظيفيًا ويمكن استرجاعها. جميع الخصائص الأخرى (near_plane, far_plane, field_of_view, aspect_ratio,، إلخ) لديها setters لا تقوم بأي شيء؛ القيم المعينة لا تُحفظ. قراءة هذه الخصائص تُعيد القيمة الافتراضية للفئة بغض النظر عما تم تعيينه.

عند استيراد بيانات الكاميرا من ملف ثلاثي الأبعاد (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}")

انظر أيضًا

 العربية