mp.Vector3 Помогите, кто знает)
Уж извините, если не сюда написал)
Мне надо сделать так, чтобы сравнило мои координаты с другими координатами, и нашло самые ближайшие ко мне, а затем вывело их в консоль. Мои координаты находятся в переменной myPos. А координаты других людей в массиве otherPosition;
myPos = {x: 2000, y: 1000, z: 500};
otherPosition = [
{x: 2500, y: 1200, z: 600},
{x: 2300, y: 1200, z: 490},
{x: 2150, y: 1400, z: 400}
]
|
Ищи что такое
1. векторная аглебра 2. Разница векторов 3. Длина вектора |
Привет, спасибо, вроде бы получилось.
Хотел спросить ещё, как узнать под каким номером в массиве находятся самые близкие ко мне координаты? Я понимаю, что надо сделать через цикл к примеру for, но как именно в данном случае? |
поиск индекса ближайшей точки
Georgie0409,
const myPos = {x: 2000, y: 1000, z: 500},
otherPosition = [
{x: 2500, y: 1200, z: 600},
{x: 2300, y: 1200, z: 490},
{x: 2150, y: 1400, z: 400}
], index = otherPosition.reduce(({min, index}, {x,y,z}, i) => {
const temp = Math.hypot(myPos.x-x,myPos.y-y,myPos.z-z)
if(temp < min) {min = temp, index = i};
return {min, index}
}, {min : Number.POSITIVE_INFINITY}).index;
alert(index);
|
Цитата:
|
Цитата:
|
| Часовой пояс GMT +3, время: 20:26. |