cuốn sách gpt4 ai đã làm

android — Sử dụng cảm biến vector xoay

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 05:10:06 26 4
mua khóa gpt4 Nike

Tôi muốn biết cách sử dụng đúng đầu ra của "cảm biến vectơ xoay". Hiện tại tôi đã nghĩ đến những điều sau đây và muốn dựa vào đó kết quả[] Tính toán độ lệch và độ cao để biết thiết bị được chỉ vào đâu (khi ở chế độ ngang). Nhưng tôi có nghi ngờ về kết quả. Các tính toán lệch rất chính xác, nhưng hành vi cao độ thì kỳ lạ. Có lẽ bất cứ ai cũng có thể chỉ cho tôi hướng đi đúng về cách sử dụng dữ liệu. Một điều nữa tôi muốn biết là liệu hướng thiết bị (ngang hay dọc) có ảnh hưởng gì đến đầu ra của cảm biến này hay không. Cảm ơn trước.

riêng tư max max = Math.PI/2 - 0,01;
riêng tư đôi phút = -max;

float riêng tư [] xoayVectorAction (giá trị float []) {
float[] result = float mới[3];
float vec[] = giá trị;
float quat[] = new float[4];
float [] định hướng = float mới [3];
SensorManager.getQuaternionFromVector(quat, vec);
float[] rotMat = float mới[9];
SensorManager.getRotationMatrixFromVector(rotMat, quat);
SensorManager.getOrientation(rotMat, Direction);
result[0] = (float) định hướng[0];
result[1] = (float) định hướng[1];
result[2] = (float) định hướng[2];
return result;
}

khoảng trống riêng tư chính () {
float[] result = spinningVectorAction(sensorInput);
ngáp = kết quả[0];
cao độ = kết quả[1];
pitch = (float) Math.max(min, pitch);
pitch = (float) Math.min(max, pitch);
float dx = (float) (Math.sin(yaw) * (-Math.cos(pitch)));
float dy = (float) Math.sin(pitch);
float dz = (float) (Math.cos(yaw) * Math.cos(pitch));
}

Trong OpenGL ES 2.0 tôi đặt nó để di chuyển camera:

Matrix.setLookAtM(mVMatrix, 0, 0, 0, 0, dx, dy, dz, 0, 1, 0);

câu trả lời hay nhất

Cuối cùng tôi đã tự mình giải quyết được. Lý do cao độ không hoạt động đúng là SensorManager.getQuaternionFromVector(quat, vec); Sự khác biệt giữa đầu vào và đầu ra. Phương pháp mong đợi vector vec(x|y|z|w) và đầu ra quat trông như thế này (w|x|y|z). Trong trường hợp của tôi, tôi chỉ cần quat Giá trị đầu tiên của mảng được chuyển xuống cuối và nó hoạt động như một bùa mê.

Về java - sử dụng cảm biến vectơ xoay, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/16763331/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress