feat/pitch-roll #1

Merged
zenloger merged 24 commits from feat/pitch-roll into main 2026-02-20 16:50:16 +03:00
Showing only changes of commit 57f11685a0 - Show all commits

View File

@@ -126,10 +126,10 @@
// Исходные углы изображения 1000x1000
const sourceCorners = [
[-500, -500, 0], // Верхний левый
[500, -500, 0], // Верхний правый
[500, 500, 0], // Нижний правый
[-500, 500, 0] // Нижний левый
[-500, -500, 1], // Верхний левый
[500, -500, 1], // Верхний правый
[500, 500, 1], // Нижний правый
[-500, 500, 1] // Нижний левый
];
// Функция умножения матриц
@@ -229,19 +229,33 @@
// R = Rz * Ry * Rx
const R_temp = multiplyMatrices(Rz, Ry);
const _R = multiplyMatrices(R_temp, Rx);
_R[0][2] = _R[1][2] = 0;
_R[2][2] = 1;
const R = inv(_R);
// _R[0][2] = _R[1][2] = 0;
// _R[2][2] = 1;
const R = _R;
console.log(_R, R)
const K = [
[375, 0, 375],
[0, 375, 375],
[0, 0, 1]
];
const T = [
[0.5, 0, 375],
[0, 0.5, 375],
[0, 0, 1],
]
const H = multiplyMatrices(K, multiplyMatrices(R, inv(K)));
const Z = multiplyMatrices(H, T)
// Трансформация углов
const transformedCorners = sourceCorners.map(corner => {
const rotated = multiplyMatrixVector(R, corner);
const rotated = multiplyMatrixVector(Z, corner);
const scaled = [
rotated[0],
rotated[1],
rotated[2]
];
return project3Dto2D(scaled, height);
console.log(K, R, H, rotated);
return [rotated[0] / rotated[2], rotated[1] / rotated[2]];
// return project3Dto2D(scaled, height);
});
// Очистка canvas