Тестирующие хит формы SVG?

Браузеры, которые реализовали части спецификации SVG (Firefox и т.д.) делают тестирование хита для нас бесплатно - если я присоединяю mousedown слушателя на объекте SVG, я уведомляюсь каждый раз, когда форма нажата. Это удивительно, специально для сложных форм полигона.

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

Например, я добавляю 3 сложных полигона к своему элементу. Теперь я хочу знать, пересекает ли прямоугольник (40, 40, 100, 100) какого-либо из них. У кого-либо есть идея, как я мог возможно сцепиться в уже большую тестирующую хит доступную поддержку, вместо того, чтобы добавить весь этот код сам?

Спасибо

26
задан Erik Dahlström 18 August 2011 в 14:13
поделиться

2 ответа

UPDATE table
SET A = IF(A > 0 AND A < 1, 1, IF(A > 1 AND A < 2, 2, A))
WHERE A IS NOT NULL;

можно использовать CEIL () , если A всегда является значением с плавающей запятой > 0 и < = 2

-121--1191276-

Поиск всех делений не должен быть трудным с помощью пользовательского поиска grep . Можно легко отличить это использование от других видов использования символов / и % в C++.

Кроме того, если вы знаете, что вы разделяете, вы можете глобально перегружать операторы / и % , чтобы иметь операторы _ _ _ FILE _ _ и _ LINE _ _ , информирующие При использовании makefile не должно быть трудно включить пользовательский код оператора во все связанные файлы, не касаясь кода.

-121--3223142-

Я не знаю способа пересечения целого прямоугольника. Но вы можете пересечь точку, так что вы можете построить более сложную проверку из этого:

var el= document.elementFromPoint(x, y);

даст вам самый высокий элемент в стопке в конкретной относительно страницы координации. Вы получите элемент < svg > , если нет фигур внутри SVG.

Это нестандартное расширение Mozilla , но оно также работает на WebKit. К сожалению, хотя он существует в Opera, он не будет заглядывать внутрь < svg > , так что в этом браузере элемент всегда будет SVGSVGElement.

16
ответ дан 28 November 2019 в 07:18
поделиться

HKEY _ CURRENT _ USER\Software\Classes\http\shell\open\command\( Default) - обработчик текущего пользователя для протокола HTTP (что означает «браузер по умолчанию»; ПРИМЕЧАНИЕ: это НЕ то же самое, что обработчик .html по умолчанию!).

Однако в верхней части меню «Пуск» можно использовать другой браузер без изменения значения по умолчанию. К вашему сведению, имя исполняемого файла браузера в меню «Пуск» хранится в HKEY _ CURRENT _ USER\Software\Clients\StartMireInternet\( Default) .

-121--3545641-

Ну, это зависит от того, что вы тестируете. Есть много способов справиться с подобными вещами. Я предпочитаю использовать Asterisk Call Files в комплекте с кодом dialplan. EG: Создайте файл вызова, чтобы набрать какой-то публичный номер, как только на него ответят, вернуться к указанному контексту dialplan и выполнить всю мою логику тестирования (воспроизведение звуковых файлов, прослушивание клавиатур и т.д.)

Я написал библиотеку файлов вызова Asterisk, которая делает этот вид тестирования ЧРЕЗВЫЧАЙНО простым. В нем также много документации/примеров, проверьте его здесь: http://pycall.org/ . Это может вам помочь.

Удачи!

-121--4998287-

SVG 1,1 DOM имеет правильный метод (к сожалению, он еще не реализован в mozilla):

var nodelist = svgroot.getIntersectionList(hitrect, null);

Полный рабочий пример см. в здесь .

27
ответ дан 28 November 2019 в 07:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: