njin
Engine 2D gọn nhẹ để tự tay làm game theo ý mình. Vibe coding cũng ổn luôn
Loading...
Searching...
No Matches
njin::joint3d_desc Struct Tham chiếu

Mô tả một khớp nối cho joint3d_create(). Tiếp...

#include <njin_physics3d.h>

Các thuộc tính Public

joint3d_kind kind = joint3d_hinge
 Loại khớp.
body3d_handle a {}
 Body thứ nhất.
body3d_handle b {}
 Body thứ hai. Không hợp lệ là nối a vào một điểm cố định của thế giới.
vec3 anchor {0.0f, 0.0f, 0.0f}
 Điểm nối.
vec3 anchor_b {0.0f, 0.0f, 0.0f}
 Điểm nối ở phía b, chỉ cho njin::joint3d_distance.
vec3 axis {0.0f, 1.0f, 0.0f}
 Trục xoay (bản lề) hoặc trục trượt (khớp trượt).
f32 min = 0.0f
 Giới hạn: góc, độ (bản lề); quãng trượt, đơn vị thế giới, 0 là vị trí lúc tạo (khớp trượt); khoảng cách (njin::joint3d_distance, cả hai bằng 0 là giữ khoảng cách lúc tạo).
f32 max = 0.0f
 Xem min.
f32 motor_force = 0.0f
 Mô-tơ của bản lề và khớp trượt: lực tối đa (bản lề: mô-men, N·m) để giữ tốc độ đặt bằng joint3d_set_motor().
f32 spring = 0.0f
 Lò xo của bản lề, khớp trượt và njin::joint3d_distance: tần số dao động, Hz (độ cứng không phụ thuộc khối lượng: 1..5 mềm, 10..20 cứng).
f32 damping = 0.0f
 Giảm chấn của lò xo, 0 (nảy mãi) .. 1 (về chỗ không nảy).
joint3d_handle joint_a {}
 Bản lề thứ nhất của njin::joint3d_gear và njin::joint3d_rack (body a của nó là bánh răng).
joint3d_handle joint_b {}
 Bản lề thứ hai (njin::joint3d_gear) hoặc khớp trượt của thanh răng (njin::joint3d_rack); body a của nó là bánh hay thanh.
f32 ratio = 1.0f
 Tỉ số.
vec3 pulley_a {0.0f, 0.0f, 0.0f}
 Điểm cố định dây bên a vắt qua (njin::joint3d_pulley).
vec3 pulley_b {0.0f, 0.0f, 0.0f}
 Điểm cố định dây bên b vắt qua (njin::joint3d_pulley).

Mô tả chi tiết

Mô tả một khớp nối cho joint3d_create().

Các điểm và trục tính trong tọa độ thế giới, lúc tạo khớp.

Thông tin về Member Data

◆ min

f32 njin::joint3d_desc::min = 0.0f

Giới hạn: góc, độ (bản lề); quãng trượt, đơn vị thế giới, 0 là vị trí lúc tạo (khớp trượt); khoảng cách (njin::joint3d_distance, cả hai bằng 0 là giữ khoảng cách lúc tạo).

Bản lề và khớp trượt cần min <= 0 <= max (góc của bản lề trong -180..180): giá trị ngoài khoảng bị kẹp lại. min >= max là không giới hạn, trừ njin::joint3d_distance. njin::joint3d_pulley: tổng chiều dài dây, bên a cộng ratio lần bên b (cả hai bằng 0 là từ 0 tới chiều dài lúc tạo: dây chùng được nhưng không giãn).

◆ motor_force

f32 njin::joint3d_desc::motor_force = 0.0f

Mô-tơ của bản lề và khớp trượt: lực tối đa (bản lề: mô-men, N·m) để giữ tốc độ đặt bằng joint3d_set_motor().

0 là không có mô-tơ.

◆ spring

f32 njin::joint3d_desc::spring = 0.0f

Lò xo của bản lề, khớp trượt và njin::joint3d_distance: tần số dao động, Hz (độ cứng không phụ thuộc khối lượng: 1..5 mềm, 10..20 cứng).

Giới hạn [min, max] thành lò xo: ra ngoài thì bị kéo về. Không có giới hạn thì lò xo giữ khớp ở vị trí lúc tạo (góc, quãng trượt, khoảng cách). 0 là giới hạn cứng.

◆ joint_a

joint3d_handle njin::joint3d_desc::joint_a {}

Bản lề thứ nhất của njin::joint3d_gear và njin::joint3d_rack (body a của nó là bánh răng).

Hai khớp này không dùng a và b.

◆ ratio

f32 njin::joint3d_desc::ratio = 1.0f

Tỉ số.

njin::joint3d_gear: số vòng bánh joint_a quay khi bánh joint_b quay một vòng (số răng của b / số răng của a); dương là ngược chiều (bánh răng ăn khớp), âm là cùng chiều (xích, dây curoa), khi hai trục cùng hướng. njin::joint3d_rack: quãng thanh trượt mỗi vòng bánh, đơn vị (2π × bán kính bánh); âm là trượt theo chiều ngược lại. njin::joint3d_pulley: bên b tính gấp ratio lần (palăng: 2 là kéo nhẹ một nửa, đi dài gấp đôi).