Здравствуйте!
У меня случилась вот такая вот задачка:
Есть четырёхугольный полигон, который прямоугольник. Нужно сделать так, чтобы при перетаскивании одной из вершин прямоугольник оставался прямоугольником. То есть нужно каким-то образом автоматом перетащить соседние вершины (у одной изменить позицию по X, у другой по Y). На рисунке ниже я продемонстрировал, что претаскивается вершина с индексом 1 и автоматом должны перетащиться вершины 0 и 2 так, чтобы вновь образовался прямоугольник.
Проштудировав Яндекс (как материалы по API, так и просто через поисковик) и Гуголь, наткнулся на мысль, что вся тема должна быть где-то в функции "onPointDragging". Попробовал теста ради пока решить задачу для вершины с индексом 1 и сделал вот так:
polygon.setEditingOptions({
drawing: false,
maxPoints: 4,
onPointDragging: function(points, index, flag) {
if (index==1) {
points[0].setY(points[1].getY());
points[2].setX(points[1].getX());
alert(points[2].getX() + ' = ' + points[1].getX());
}
return points[index];
}
});
но ничего не получилось. При перетаскивании вершины 1, вершины 0 и 2 остаются на прежнем месте, хотя при этом алерт сообщает о том, что координата X у вершины 2 всё же сместилась.
Вопрос: в какую сторону мне копать, чтобы решить данную задачу?