Я нашел кого-то еще, пытающегося сделать это , я не думаю, что это самый творческий подход, был способ сделать это мгновенно много лет назад.
Iзнать, что SVG используется для анимации штриховой графики, есть много учебных пособий:
https://medium.com/@sterling.meghan/svg-line-animation-for-beginners-51857c88357f
Также есть библиотека для SVG, которая называется Reaction-native-svg , дело в том, что объекты SVG можно перетаскивать в javascript
http://www.petercollingridge.co.uk/tutorials/svg/interactive/dragging/
Так что моя идея для решения этой проблемы заключается в следующем: у вас есть два слоя друг на друге.
Верхний заполняет весь экран и имеет разрез, то есть форму, подлежащую трассировке (штриховой рисунок)
Чтобы добраться до находящегося позади SVG-объекта, вы можете только сделать это. через этот разрез. Вы можете показать маленький кружок в начальной точке, который является частью большой цветной фигуры SVG, которая находится под разрезом, эта фигура является вторым слоем.
Пользователь начинает трассировку, но на самом деле он перетаскивает этот большой объект SVG из одной точки в другую, ему нужно следовать по пути, аналогичному трассировке, потому что только если он сделает это, он сможет перетащить объект черездыра. (Он может добраться до объекта во втором слое только через отверстие)
Перетаскиваемый объект SVG имеет цвет, отличный от верхнего слоя, поэтому при перетаскивании пользователем он выглядит как заполнение пути.
Надеюсь, это поможет вам или, по крайней мере, даст вам некоторые идеи. Кроме того, вы можете анимировать другой SVG, когда пользователь завершит трассировку, с помощью CSS-анимации. Я, наверное, попробую это, когда у меня будет время.