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 مخزنة وظيفيًا ويمكن استرجاعها. جميع الخصائص الأخرى (near_plane, far_plane, field_of_view, aspect_ratio,، إلخ) لديها setters لا تقوم بأي شيء؛ القيم المعينة لا تُحفظ. قراءة هذه الخصائص تُعيد القيمة الافتراضية للفئة بغض النظر عما تم تعيينه.
عند استيراد بيانات الكاميرا من ملف ثلاثي الأبعاد (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}")