public void TranslateControlPointTest() { ARAPDeformation target = new ARAPDeformation(new List <PointF>() { new PointF(0, 0), new PointF(100, 0), new PointF(100, 100), new PointF(0, 100), }, null); // TODO: 適切な値に初期化してください target.BeginDeformation(); target.EndDeformation(); target.AddControlPoint(new PointF(0, 0), new PointF(0, 0)); target.AddControlPoint(new PointF(100, 0), new PointF(100, 0)); target.AddControlPoint(new PointF(100, 100), new PointF(100, 100)); //target.AddControlPoint(new PointF(50, 50)); // target.AddControlPoint(new PointF(150, 50)); // target.AddControlPoint(new PointF(150, 150)); target.BeginDeformation(); //target.TranslateControlPoint(new PointF(50, 50), new PointF(-50, -50)); //target.TranslateControlPoint(new PointF(150, 50), new PointF(100, -50)); //target.TranslateControlPoint(new PointF(150, 150), new PointF(50, 50)); target.ToBitmap().Save("../../../before.png"); target.TranslateControlPoint(new PointF(0, 0), new PointF(-100, -100), true); target.ToBitmap().Save("../../../after.png"); Assert.AreEqual(target.meshPointList[0].X, -100, 1); Assert.AreEqual(target.meshPointList[0].Y, -100, 1); target.TranslateControlPoint(new PointF(100, 0), new PointF(0, -100), false); Assert.AreEqual(target.meshPointList[0].X, -100, 1); Assert.AreEqual(target.meshPointList[0].Y, -100, 1); target.TranslateControlPoint(new PointF(100, 100), new PointF(0, 0), true); target.EndDeformation(); Assert.AreEqual(target.meshPointList[0].X, -100, 1); Assert.AreEqual(target.meshPointList[0].Y, -100, 1); Assert.AreEqual(target.meshPointList[1].X, 0, 1); Assert.AreEqual(target.meshPointList[1].Y, -100, 1); Assert.AreEqual(target.meshPointList[2].X, 0, 1); Assert.AreEqual(target.meshPointList[2].Y, 0, 1); Assert.AreEqual(target.meshPointList[3].X, -100, 1); Assert.AreEqual(target.meshPointList[3].Y, 0, 1); var path = target.GetPath(); Assert.AreEqual(path[0].X, -100, 1); Assert.AreEqual(path[0].Y, -100, 1); Assert.AreEqual(path[1].X, 0, 1); Assert.AreEqual(path[1].Y, -100, 1); Assert.AreEqual(path[2].X, 0, 1); Assert.AreEqual(path[2].Y, 0, 1); Assert.AreEqual(path[3].X, -100, 1); Assert.AreEqual(path[3].Y, 0, 1); }
public void ARAPDeformationConstructorTest() { ARAPDeformation refARAP = new ARAPDeformation(new List <PointF>() { new PointF(0, 0), new PointF(100, 0), new PointF(100, 100), new PointF(0, 100), }, null); // TODO: 適切な値に初期化してください ARAPDeformation target = new ARAPDeformation(refARAP); var path1 = refARAP.GetPath(); var path2 = target.GetPath(); Assert.AreEqual(path1.Count, path2.Count); for (int i = 0; i < path1.Count; i++) { Assert.AreEqual(path1[i].X, path2[i].X, 1e-4); Assert.AreEqual(path1[i].Y, path2[i].Y, 1e-4); } }