Я пытаюсь изменить путь в SVG, манипулируя его контрольными точками, перетаскивая соответствующие маркеры на экране.
Это означает, что я могу использовать координаты x / y 4-х маркеров каждого сегмента (т.е. кубическая кривая Безье) пути SVG в качестве входных данных.
Я бы хотел использовать их для изменения атрибута "d" пути.
Я могу получить доступ к атрибуту "d" как к массиву массивов, подобных этому:
[["M",637,17], ["C",731,81,752,139,711,178], ["C",631,252,623,347,623,347]]
или в его плоской версии, например:
["M",637,17,"C",731,81,752,139,711,178,"C",631,252,623,347,623,347]
Единственное, что я не могу понять, это то, что делает
function dIndex(segmentIndex, handleIndex) {
// ?????
return dAttributeArrayIndex
}
тогда я могу сделать
function setdAttribute(segmentIndex, handleIndex, x, y) {
// etc etc
}
, что должно работать следующим образом (если я не ошибаюсь, индекс только для координаты x, y будет x + 1):
0 => 1
1 => 4
2 => 6
3 => 8
4 => 11
5 => 13
6 => 15
7 => 18
8 => 20
9 => 22
Я сломал голову, пытаясь понять это в Excel.
Что здесь за функция отображения? Или вообще есть лучший подход, который я пропустил?