IgorBee
@IgorBee
JS,VBS,3D.Web с 07.2015

Как вычислить координаты многоугольного объекта и как с ними работать?

На данный момент работает такой код ,но он вычисляет для прямоугольного,что мне не подходит.

rock= document.all("rock"); //Цепляем  <img src="rock.SVG" >

function MuCoord(rock){
	coord=rock.getBoundingClientRect();

	return rockObj={
		top:coord.top,
		left:coord.left
	};

};

console.log(MuCoord(rock));

И как собственно вставить svg чтобы отображались его реальные координаты сторон.

В дальнейшем эти координаты хочу использовать для вычисления обработки события столкновения с другими объектами.

Zjp62ap.pngP.S.желательно конечно без библиотек
  • Вопрос задан
  • 268 просмотров
Пригласить эксперта
Ответы на вопрос 2
lazalu68
@lazalu68
Salmon
Я в принципе понял, чего вы хотите, но чтобы определиться с тем, как именно нужно решать эту проблему, сначала надо определиться с тем, что вы хотите на выходе получить. Вы уже выбрали формат и способ обработки координат? Как будет происходить обработка округлых фигур? Собираетесь обрабатывать только внешнюю часть фигур или внутренняя тоже нужна будет?
Ответ написан
copist
@copist
Empower people to give
В твоём случае, как мне кажется, камень изображён в изометрии, то есть мы видим его фронтальную, боковую и верхнюю грань. Исходя из этого столкновение произойдёт не тогда, когда границы точно пересекутся, а при небольшом наложении.

Как то вот так:
de058d5c19fa45bcba3be363600056aa.png4c91b5b1e4844574b4ee940c10709f4f.png

Границы можно вычислять условно, упрощённо. Например, через параллелепипеды, а ещё проще через прямоугольники. Я бы сохранил координаты двух прямоугольников - который описывает фигуру снаружи и внутри и исходя из них делал вычисление пересечений.

Вот пример видео для иллюстрации пересечений объектов https://www.dropbox.com/s/so1j4p12f3awodd/rock_hit...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект
22 нояб. 2024, в 22:26
3500 руб./за проект