Масштабирование полигона к краю? - PullRequest
0 голосов
/ 14 июля 2010

Я знаю, что для масштабирования вершин мне просто нужно умножить на коэффициент масштабирования.Но я заметил, что большинство приложений векторного рисования отображают ограничивающий прямоугольник фигур, и, перетаскивая одно из ребер, он будет масштабировать геометрию в направлении противоположного ребра, а затем, если вы пройдете за этим ребром, он в конечном итоге будет отражать геометрию на этой оси.Как выполняется масштабирование к краю?Пример: если вы выберете самый верхний край круга, он будет масштабироваться по направлению к нижнему краю его ограничительной рамки, пока он не будет выглядеть как ничто, вроде капли дождя, которая падает, когда падает на землю.Я надеюсь, что это достаточно ясно.Спасибо

1 Ответ

2 голосов
/ 14 июля 2010

Следите за исходным расстоянием между двумя краями и вычисляйте новое расстояние до края при его перемещении.Масштабируйте каждую точку до соотношения оригинал / новый и используйте ребро, которое не движется, в качестве нулевой точки, т.е. вычитайте это значение из каждой координаты перед масштабированием и добавляйте его обратно после масштабирования.Будьте осторожны, чтобы не упасть, когда два ребра сходятся и расстояние становится равным нулю.

...