За моето приложение имам правоъгълник, начертан в SVG, който използвам като hitbox, и се стремя да направя JavaScript функция, която връща булево значение true, когато hitbox докосне друг правоъгълник, който е бил завъртян около центъра си под някакъв ъгъл използвайки CSS трансформации. Открих този код от http://www.inkfood.com/collision-detection-with-svg/:
function intersectRect(r1, r2) {
var r1 = r1.getBoundingClientRect(); //BOUNDING BOX OF THE FIRST OBJECT
var r2 = r2.getBoundingClientRect(); //BOUNDING BOX OF THE SECOND OBJECT
//CHECK IF THE TWO BOUNDING BOXES OVERLAP
return !(r2.left > r1.right ||
r2.right < r1.left ||
r2.top > r1.bottom ||
r2.bottom < r1.top);
}
Това работи чудесно за обикновени правоъгълници, но не съм сигурен как да надградя това, за да работя с моя завъртян правоъгълник. Когато проверявам завъртяния правоъгълник с помощта на инструменти за разработчици в моя уеб браузър, мога да видя, че той подчертава правоъгълника правилно. Като се има предвид това, когато се опитам да извлека ограничаващия клиентски правоъгълник с помощта на JavaScript, той връща размерите на правоъгълника в неговата незавъртяна форма. Въпросът ми е как да получа правилните размери за моя завъртян правоъгълник, така че да мога да открия, когато се сблъска с моя правоъгълник с hitbox? Има ли друг метод за мен да открия, когато моят хитбокс докосне моя завъртян правоъгълник? Всяка помощ ще бъде много ценена.
canvas
вместо това, вероятно ще ви е по-лесно.isPointInPath
по-специално може да ви спести много главоболия: w3schools.com/tags/canvas_ispointinpath.asp - person jmcgriz   schedule 22.03.2018rect
иrotate
методи - person jmcgriz   schedule 22.03.2018