Задать вопрос
  • Как получить координаты точки, зная координаты других 3-х, и расстояние между ними?

    @lundoger Автор вопроса
    Adamos, а почему Math.pow() тебе не понравился, интересно узнать
    Написано
  • Как получить координаты точки, зная координаты других 3-х, и расстояние между ними?

    @lundoger Автор вопроса
    Rsa97, Спасибо большое за объяснения, теперь намного понятнее стало, я в итоге сделал все почти так как ты и написал вот только формулу по получению расстояния расписывал в ручную как a^2 - 2ab + b^2) потому что с ее изначальным видом у меня что то неполучалось, сегодня переписал все более просто так как в твоем примере. Очень благодарен
    Написано
  • Как получить координаты точки, зная координаты других 3-х, и расстояние между ними?

    @lundoger Автор вопроса
    Алексей Ярков, Да, забыл ночью добавить, я немножко ее облагородил так как ночью я такого понаписовал в попытках заставить функцию работать)

    const MAX_NUMBER = 100
    const MIN_NUMBER = 0
    let probes = []
    
    export const getRandomNumber = (min, max) => {
    	return Math.floor(Math.random() * (max - min + 1)) + min;
    };
    
    export const getRandomCoordinates = () => {
    	return {
    		x: getRandomNumber(MIN_NUMBER, MAX_NUMBER),
    		y: getRandomNumber(MIN_NUMBER, MAX_NUMBER),
    		z: getRandomNumber(MIN_NUMBER, MAX_NUMBER),
    	}
    };
    
    export const createAsteroid = () => {
    	return getRandomCoordinates()
    };
    
    export const getDistanceBetweenPoints = (point1, point2) => {
    	const { x: x1, y: y1, z: z1 } = point1;
    	const { x: x2, y: y2, z: z2 } = point2;
    
    	//Я просто оставлю эту формулу тут что бы кто-то немножко повеcелел от увиденного
    	// Что бы долго не вникать я расписал формулу (a- b)^2 как a^2 - 2ab + b^2 
    	// const distance = Math.pow(x1, 2) - 2 * x1 * x2 + Math.pow(x2, 2) + Math.pow(y1, 2) - 2 * y1 * y2 + Math.pow(y2, 2) + Math.pow(z1, 2) - 2 * z1 * z2 + Math.pow(z2, 2)
    
    
    	const distance = Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2) + Math.pow(z1 - z2, 2)
    
    	return Math.sqrt(distance);
    }
    
    const addProbeAndGetDistance = (probe, asteroid) => {
    	probes.push(probe)
    	return getDistanceBetweenPoints(asteroid, probe)
    }
    
    
    export const findAsteroidLocation = () => {
    	const asteroid = createAsteroid()
    
    	const d0 = addProbeAndGetDistance({ x: 0, y: 0, z: 0 }, asteroid)
    	const dx = addProbeAndGetDistance({ x: 1, y: 0, z: 0 }, asteroid)
    	const dy = addProbeAndGetDistance({ x: 0, y: 1, z: 0 }, asteroid)
    	const dz = addProbeAndGetDistance({ x: 0, y: 0, z: 1 }, asteroid)
    
            //Тут так как у меня вернулись не квадраты расстояния, я рассписал d0 ^2- dn^2 как (d0 - dn) * (d0 + dn)
    	const asteroid_x = Math.round(((d0 - dx) * (d0 + dx) + 1) / 2)
    	const asteroid_y = Math.round(((d0 - dy) * (d0 + dy) + 1) / 2)
    	const asteroid_z = Math.round(((d0 - dz) * (d0 + dz) + 1) / 2)
    
    	console.log(asteroid);
    	console.log(`x: ${asteroid_x}, y: ${asteroid_y}, z: ${asteroid_z}`);
    
    	const result = { x: asteroid_x, y: asteroid_y, z: asteroid_z }
    
    	return { probes, location: result }
    }
    Написано
  • Как получить координаты точки, зная координаты других 3-х, и расстояние между ними?

    @lundoger Автор вопроса
    спустя часов 6 беспрерывных попыток сделать эту задачу я ее закончил наконец-то, хотя я все еще не совсем понял почему она так решается.
    Спасибо большое за то что помог, попробую еще чуть лучше понять почему все именно так, но теперь хотя бы спать лягу спокойно
    Написано
  • Как получить координаты точки, зная координаты других 3-х, и расстояние между ними?

    @lundoger Автор вопроса
    то-есть сейчас у меня функция подсчета длинны неправильно считает, так как раскрывает (x - число)^2 не по формуле а просто считает? И еще вопрос, если d0 и d1 я могу использовать для получения x, то для y - d1 и d2, z - d2 и d3? И для получения правильной координаты нужно правильно написать функцию и вычесть от первой длинны вторую?
    Написано