В начале этого вопроса Detecting mouse coordinates with precision, я узнал немало за последние несколько дней. Вот то, что я выбрал в качестве лучших учебных ресурсов по этой теме:Обнаружение нерегулярных фигур
- http://gamedev.tutsplus.com/tutorials/implementation/quick-tip-use-quadtrees-to-detect-likely-collisions-in-2d-space/
- http://www.gamedev.net/page/resources/_/technical/graphics-programming-and-theory/quadtrees-r1303
- http://jsfiddle.net/2dchA/2/
Код в (3) работает в JSFiddle, но перерывы в этом разделе в моей испытательная среда (VS2012):
var myTree = new Quadtree({
x: 0,
y: 0,
width: 400,
height: 300
});
с сообщением Quadtree is und в IE. FF & Chrome просто замаскирует его и отображает пустую страницу. Я не мог разобраться. Вопрос 1. Может ли кто-нибудь помочь в этом?
Мой главный вопрос: У меня есть регион (земельные участки, подобные карте) с примерно 1500 посылок, нарисованных в html5, а не в формате jpg или png. Это много строк кода, чтобы завершить это, но рендеринг велик, поэтому я держу его таким образом. Я намерен иметь событие mouseover, скажите мне, какой посылкой я стою, когда мышь останавливается. Как вы увидите в предыдущем вопросе, мои предыдущие попытки не впечатляют. Основываясь на обучении, которое я делал, и благодаря ответам/комментариям Кен Дж, я хотел бы пойти с этим новым подходом нарезать свой холст, чтобы сказать 15 квадратов по 100 объектов каждый. Тем не менее, я бы хотел, чтобы некоторые рекомендации, прежде чем я принимаю другое дикое погружение неправильно.
Вопрос 2: Должен ли я нарезать его при создании или если нарезка произойдет, когда мышь находится над областью, т. Е. Пройдем мышь? Последний звучит лучше для меня, но я думаю, что смогу сделать некоторые советы и, если возможно, начать код. Концепция quadtree для меня совершенно новая. Благодарю.
Vincent, это ваш код, предполагающий прямоугольные формы (x, y)? Я не уверен, что следую вашему предложению: мои фигуры являются нерегулярными участками земли со слишком большим количеством «moveTo (x, y)» и «lineTo (x, y)», которые пересекаются, чтобы нарисовать одну часть ... –
Thats сюрприз, потому что, насколько я понимаю, посылки всегда должны иметь одинаковое соотношение ширины и высоты. Вы уверены, что это Quad Trees, а не k-d деревья (или что-то подобное)? – mzedeler
На самом деле, это похоже на googlemap, только вместо стран у меня есть земельные участки. они редко бывают правильными фигурами на этой стороне мира :) Демаркации могут быть реками, холмами и т. д. Я только что проверил деревья k-d, и я думаю, что это не то, что мне нужно. k-d многомерна. Мой случай прост 2d, только нерегулярные края. –