fix: coordinates
This commit is contained in:
34
page.html
34
page.html
@@ -126,10 +126,10 @@
|
|||||||
|
|
||||||
// Исходные углы изображения 1000x1000
|
// Исходные углы изображения 1000x1000
|
||||||
const sourceCorners = [
|
const sourceCorners = [
|
||||||
[-500, -500, 0], // Верхний левый
|
[-500, -500, 1], // Верхний левый
|
||||||
[500, -500, 0], // Верхний правый
|
[500, -500, 1], // Верхний правый
|
||||||
[500, 500, 0], // Нижний правый
|
[500, 500, 1], // Нижний правый
|
||||||
[-500, 500, 0] // Нижний левый
|
[-500, 500, 1] // Нижний левый
|
||||||
];
|
];
|
||||||
|
|
||||||
// Функция умножения матриц
|
// Функция умножения матриц
|
||||||
@@ -229,19 +229,33 @@
|
|||||||
// R = Rz * Ry * Rx
|
// R = Rz * Ry * Rx
|
||||||
const R_temp = multiplyMatrices(Rz, Ry);
|
const R_temp = multiplyMatrices(Rz, Ry);
|
||||||
const _R = multiplyMatrices(R_temp, Rx);
|
const _R = multiplyMatrices(R_temp, Rx);
|
||||||
_R[0][2] = _R[1][2] = 0;
|
// _R[0][2] = _R[1][2] = 0;
|
||||||
_R[2][2] = 1;
|
// _R[2][2] = 1;
|
||||||
const R = inv(_R);
|
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 transformedCorners = sourceCorners.map(corner => {
|
||||||
const rotated = multiplyMatrixVector(R, corner);
|
const rotated = multiplyMatrixVector(Z, corner);
|
||||||
const scaled = [
|
const scaled = [
|
||||||
rotated[0],
|
rotated[0],
|
||||||
rotated[1],
|
rotated[1],
|
||||||
rotated[2]
|
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
|
// Очистка canvas
|
||||||
|
|||||||
Reference in New Issue
Block a user