Ứng dụng tìm góc trong không gian bằng python

Tram Ho

Chắc hẳn ai cũng được học phân tích vecto trên ghế nhà trường, hiện tại mình cũng đang làm về 1 dự án về phân tích tư thế của cơ thể khi tập vật lý trị liệu, thế nên được áp dụng những công thức từ trước để tìm góc được tạo bởi 3 điểm : vai, hông, đầu gối. Có những không gian 2D, 3D nhưng hôm nay mình sẽ áp dụng với dữ liệu 2D.

Công thức tính góc có thể xác định theo đại số hoặc hình học. ĐỊnh nghĩa hình học dựa trên các khái niệm về góc và khoảng cách( độ lớn của vector). Sự tương đương của hai định nghĩa này phụ thuộc vào việc có một hệ tọa độ Decartes cho không gian Euclide.

1. Định nghĩa hình học:

1 góc gồm độ lớn và hướng. Một vector có thể được hình dung như 1 mũi tên. Độ lớn của nó là chiều dài và hướng của nó là hướng mà mũi tên chỉ tới. Độ lớn của 1 vector a được kí hiệu là ||a||. Tích số chấm của 2 vector Oclit a và b được xác định bởi θ là góc giữa a và b .

Giải thích:

2. Công thức

Sử dụng thư viện math:

Sử dụng thư viện numpy

Ngoài ra, từ công thức trên cũng có thể tạo góc với 2 điểm , điểm còn lại chỉnh là trục OX
VD: độ nghiêng của thân người (gồm vai và hông)

Hoặc có trường hợp sẽ tính góc của hông trái- vai trái sẽ khác với hông phải – lưng phải , thì sẽ là 1 hệ quy chiếu khác đối nghịch trục ox với không gian trước, ta sẽ tính với công thức sau

Nguồn :
https://manivannan-ai.medium.com/find-the-angle-between-three-points-from-2d-using-python-348c513e2cd

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo