internal void Translate(HTCoordE zs, HTCoordE ze) { HTCoordE zo = new HTCoordE(drawRoot.GetOldCoordinates()); zo.X = -zo.X; zo.Y = -zo.Y; HTCoordE zs2 = new HTCoordE(zs); zs2.Translate(zo); HTCoordE t = new HTCoordE(); double de = ze.D2(); double ds = zs2.D2(); double dd = 1.0 - de * ds; t.X = (ze.X * (1.0 - ds) - zs2.X * (1.0 - de)) / dd; t.Y = (ze.Y * (1.0 - ds) - zs2.Y * (1.0 - de)) / dd; if (t.IsValid()) { HTTransformation to = new HTTransformation(); to.Composition(zo, t); drawRoot.Transform(to); view.Repaint(); } }
internal void Divide(HTCoordE z) { double d = z.D2(); double tx = x; double ty = y; x = ((tx * z.X) + (ty * z.Y)) / d; y = ((ty * z.X) - (tx * z.Y)) / d; }