📐 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
- Vector3: add, sub, mul, dot, cross, normalize, length
- Matrix4: translate, rotate, scale, perspective, lookAt
- Quaternion: from_axis_angle, slerp, to_matrix
💡 Ö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)