Как сделать, чтобы полигон прикреплялся к точке в позиции 3 часа - PullRequest
0 голосов
/ 13 сентября 2018

Я работаю над проектом, и я выполнил большую часть его работы, но у меня не получается увидеть, как выровнять координаты.Я застрял, и я не уверен, как получить точку, чтобы быть в 3 часа, и я застрял.Я пытался найти примеры, но все, что я вижу, - это полигоны, которым не нужно ничего сравнивать.Любая помощь?

Инструкции: Предположим, что n-сторонний правильный многоугольник центрирован в точке (0, 0) с одной точкой в ​​позиции 3 часа, как показано на рисунке 5.4.Напишите программу, которая предлагает пользователю ввести число сторон, радиус ограничивающей окружности многоугольника и отображает координаты угловых точек на многоугольнике.

import java.util.Scanner;

public class Polygon {

public static void main(String[] args) {

 Scanner input = new Scanner(System.in);
 System.out.print("Enter the number of sides: ");
 int sides = input.nextInt();

 System.out.print("Enter the radius of the bounding circle: ");
 double radius = input.nextDouble();
 input.close();

 System.out.println("The coordinates of the points on the polygon are");
 for (int i = 0; i < sides; i++) {

     double x = radius * java.lang.Math.sin(2.0 * java.lang.Math.PI / sides * i);
     double y = radius * java.lang.Math.cos(2.0 * java.lang.Math.PI / sides * i);
     System.out.print("(");
     System.out.printf("%.2f", x);
     System.out.print(" ");
     System.out.printf("%.2f",y);
     System.out.print(")");
     System.out.println();
     }

   }
}

1 Ответ

0 голосов
/ 13 сентября 2018

Вам нужно переключить выражения sin и cos.Первая точка вашего многоугольника всегда будет лежать на (radius, 0), т.е. выровнена с положением 3 часа.

     double x = radius * java.lang.Math.cos(2.0 * java.lang.Math.PI / sides * i);
     double y = radius * java.lang.Math.sin(2.0 * java.lang.Math.PI / sides * i);
...