Я создал многоугольник с 6 вершинами. Давайте назовем это внешним полигоном. Внутри внешнего полигона я создал меньшие полигоны. Я хочу перевернуть все это по вертикали в одну точку за раз.
Я знаю вершины внешнего многоугольника, и у меня есть ArrayList<Polygon>
для внутренних многоугольников. Мне удалось перевернуть внешний многоугольник. но как перевернуть внутренние полигоны, сохранив их относительное положение в новом? Я знаю центр внешнего многоугольника и перевернутую версию.
исправление: мне нужно было перевернуть по горизонтали. Я перевернул внешний многоугольник (форма треугольника) и смог переместить внутренние многоугольники. но расстояние неверное. это изображение того, что я сделал, (https://docs.google.com/drawings/d/1cPYJqxTWVu5gSHFQyHxHWSTysNzxJvNuJIwsgCQInfc/edit) https://docs.google.com/drawings/d/1cPYJqxTWVu5gSHFQyHxHWSTysNzxJvNuJIwsgedit
Я пробовал это:
for (Polygon p : polygonList) {
Polygon tempP = new Polygon(p.xpoints, p.ypoints, p.npoints);
firstPointinPolygon = new Point(p.xpoints[0], p.ypoints[0]);
// find frist point in the polygon
float adjacent = (float) firstPointinPolygon.getX() - 400;
float opposite = (float) firstPointinPolygon.getY() - 400;
float hypotenuse = (float) Math.sqrt(opposite * opposite + adjacent * adjacent);
float cosine = adjacent / hypotenuse;
float sine = opposite / hypotenuse;
float endX = 400 * cosine;
float endY = 400 * sine;
float endXDelta =400-endX;
float endYDelta=400-endY;
Polygon pM = move(tempP, endX, endY);
polygonListMirror.add(pM);
tempP = new Polygon();
}
public Polygon move(Polygon p, double xMove, double yMove) {
// Change the values of the points for the Polygon
for (int i = 0; i < p.xpoints.length; i++) {
p.xpoints[i] += xMove;
p.ypoints[i] += yMove;
}
return p;
}
Но не получил того результата, на который рассчитывал. Что я делаю не так? Конечный результат должен быть похож на изображение по этой ссылке: (https://docs.google.com/drawings/d/1vYdWkCelWW1_NUypNhtmckBYfEMzCf6bMVtoB-AyPkw/edit) https://docs.google.com/drawings/d/1vYdWkCelWW1_NUypNhtmckBYfEMzCf6bMVtoB-AyPkw/edit