//1. Move + Stretch if (newWidth != 0 && newHeight != 0) { Xfactor = (double)newWidth / oldWidth; Yfactor = (double)newHeight / oldHeight; messages.Add("Moving and Stretching"); } else //2. Move only { Xfactor = Yfactor = 1; messages.Add("Moving only"); } PolyLineSegment plDepo = new PolyLineSegment(); PolyLineSegment plSelectedLocal = new PolyLineSegment(); plSelectedLocal = GetPolyLineSegmentFromSelectedPath(); for (int iii = 0; iii < plSelectedLocal.Points.Count(); iii++) { //Per each point I calculate the distance X and Y from the center, //I normalize and AFTER I move Point prevPoint = new Point(plSelectedLocal.Points[iii].X, plSelectedLocal.Points[iii].Y); Point newPoint = new Point((prevPoint.X - piSelected.Center.X) * Xfactor + newCenter.X, (prevPoint.Y - piSelected.Center.Y) * Yfactor + newCenter.Y); plDepo.Points.Add(newPoint); } SelectedPath.Data = GetGeometryFromPolyLineSegment(plDepo);
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)