Camera

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

Camera là một Entity định nghĩa một góc nhìn trong một cảnh 3D. Nó kiểm soát cách cảnh được chiếu lên mặt phẳng ảnh 2D. Một camera được gắn vào một Node để định vị và định hướng nó trong cảnh.

class Camera(Entity):

Methods

A3DObjectSceneObjectEntityCamera


Ghi chú triển khai

Trong phiên bản này của aspose-3d-foss, Camera lớp là một đầu mối khai báo. Chỉ projection_typename được lưu trữ và có thể truy xuất một cách chức năng. Tất cả các thuộc tính khác (near_plane, far_plane, field_of_view, aspect_ratio, v.v.) có các setter không thực hiện gì; các giá trị được gán không được giữ lại. Khi đọc lại các thuộc tính này, giá trị trả về là giá trị mặc định của lớp bất kể giá trị nào đã được gán.

Khi nhập dữ liệu máy ảnh từ tệp 3D (glTF, FBX), the projection_type được phân tích đúng cách. Các thuộc tính máy ảnh khác có sẵn nếu định dạng lưu chúng dưới dạng siêu dữ liệu đồ thị cảnh.


Methods

Camera(name: str = None, projection_type: str = "PERSPECTIVE")
NameTypeAccessDescription
namestrRead/WriteGets or sets the name.
parent_nodes``ReadGets the parent nodes.
excludedboolRead/WriteGets or sets the excluded.
parent_node``Read/WriteGets or sets the parent node.
rotation_mode``Read/WriteGets or sets the rotation mode.
near_planefloatRead/WriteGets or sets the near plane.
far_planefloatRead/WriteGets or sets the far plane.
aspectfloatRead/WriteGets or sets the aspect.
ortho_heightfloatRead/WriteGets or sets the ortho height.
up``Read/WriteGets or sets the up.
look_at``Read/WriteGets or sets the look at.
direction``Read/WriteGets or sets the direction.
target``Read/WriteGets or sets the target.
aperture_mode``Read/WriteGets or sets the aperture mode.
field_of_viewfloatRead/WriteGets or sets the field of view.
field_of_view_xfloatRead/WriteGets or sets the field of view x.
field_of_view_yfloatRead/WriteGets or sets the field of view y.
widthfloatRead/WriteGets or sets the width.
heightfloatRead/WriteGets or sets the height.
aspect_ratiofloatRead/WriteGets or sets the aspect ratio.
magnification``Read/WriteGets or sets the magnification.
projection_typestrRead/WriteGets or sets the projection type.
scene``Read/WriteGets or sets the scene.
propertiesPropertyCollectionReadGets the properties.

Methods

SignatureDescription
__init__(name: str, projection_type)
move_forward(distance: float)Moves the camera forward by the specified distance
get_bounding_box()Returns the bounding box.
get_entity_renderer_key()Not implemented in the FOSS edition — throws at runtime. Returns the entity renderer key.
remove_property(property)Removes a custom property identified by the given property object
remove_property(property_name: str)
get_property(property: str)Retrieves the value of a custom property by its identifier
set_property(property: str, value)Sets the property value.
find_property(property: str)Searches for a custom property and returns it if found

Ví dụ sử dụng

Methods: Trong phiên bản này, chỉ projection_type được lưu trữ một cách chức năng. Các phép gán thuộc tính cho near_plane, far_plane, field_of_view, và aspect_ratio được chấp nhận mà không có lỗi nhưng không được duy trì.

Camera phối cảnh

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

Camera trực giao

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)

Đọc Camera sau khi nhập

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

Xem thêm

 Tiếng Việt