Я пытаюсь нарисовать интерактивную карту в Javascript, используя Raphael для выполнения тяжелой работы.
Фон карты - довольно сложная вещь, содержащая сетку, элементы карты, метки и т. Д.В довершение всего я собираюсь нарисовать материал, с которым фактически работает пользователь.Поскольку фон сложен, я не хочу перерисовывать его каждый кадр.Итак, после рисования я хотел бы повторно использовать эти элементы рисования, просто изменяя перевод, вращение, масштабирование фона при панорамировании, масштабировании и т. Д.
К сожалению, я довольно смущен примитивами преобразования Рафаэля: они ведут себя не так, как я ожидал.Если я позвоню scale()
, масштабирование будет применяться к исходному размеру элемента чертежа;но translate()
является кумулятивным, поэтому оно относится к предыдущему переводу.rotate()
может быть любым, так как у него есть опция, которую я могу установить ...
Можно ли сделать абсолютный перевод?То есть, чтобы иметь возможность указывать абсолютные координаты нового центра моих объектов (которые обычно являются путями)?В противном случае отслеживает старое местоположение, чтобы я мог применить дельту, когда я хочу переместить ее в новое местоположение, разумным способом сделать это?
Или мне лучше было бы просто перерисовать все этокаждый кадр?(Я вижу предположения о том, что Рафаэль не силен в преобразованиях сложных чертежей, поскольку большая часть этого делается в Javascript; глядя на создаваемый SVG, я вижу, что перевод, похоже, возвращается в данные пути, чтоподтвердите это ...)
(Кстати, FWIW Я использую интерфейс GWT Raphael для всего этого.)