📐 math_3d - 3D Matematik

Vector3, Matrix4, Quaternion, Transformations

94
Fonksiyon
1,156
Satır
36 KB
Boyut

🚀 Hızlı Başlangıç

içe_aktar math_3d

// Vector3
değişken v1 = math_3d.vec3(1.0, 2.0, 3.0)
değişken v2 = math_3d.vec3(4.0, 5.0, 6.0)
değişken toplam = math_3d.vec3_add(v1, v2)
değişken nokta = math_3d.vec3_dot(v1, v2)
değişken çapraz = math_3d.vec3_cross(v1, v2)

// Matrix4 (4x4 transformation matrix)
değişken M = math_3d.mat4_identity()
M = math_3d.mat4_translate(M, [10.0, 0.0, 0.0])
M = math_3d.mat4_rotate_y(M, 45.0)
M = math_3d.mat4_scale(M, [2.0, 2.0, 2.0])

// Quaternion (rotation)
değişken q = math_3d.quat_from_axis_angle([0.0, 1.0, 0.0], 90.0)
değişken rotated = math_3d.quat_rotate_vec3(q, v1)

📚 Fonksiyonlar

💡 Örnekler

Camera System

içe_aktar math_3d

sınıf Camera yap
    değişken position: Vec3
    değişken target: Vec3
    değişken up: Vec3
    
    fonksiyon view_matrix() -> Mat4 yap
        dön math_3d.mat4_look_at(self.position, self.target, self.up)
    son
    
    fonksiyon projection_matrix(fov: kesir, aspect: kesir, near: kesir, far: kesir) -> Mat4 yap
        dön math_3d.mat4_perspective(fov, aspect, near, far)
    son
son

değişken cam = Camera.yeni()
cam.position = math_3d.vec3(0.0, 5.0, 10.0)
cam.target = math_3d.vec3(0.0, 0.0, 0.0)
cam.up = math_3d.vec3(0.0, 1.0, 0.0)

değişken view = cam.view_matrix()
değişken proj = cam.projection_matrix(45.0, 16.0/9.0, 0.1, 100.0)

← Tüm Modüller