关于java:如何使多边形附加到3点钟位置的点

How to make a polygon attach to a point at a 3 o'clock position

我正在做一个项目,我已经完成了大部分工作,但是我很难找到如何使坐标排列起来。我被困住了,我不知道怎样才能在3点钟得到一个积分,我也被困住了。我试过找例子,但我看到的只是不需要排列任何东西的多边形。有什么帮助吗?

说明:假设一个n边正多边形在(0,0)处居中,其中一个点位于3点钟位置,如图5.4所示。编写一个程序,提示用户输入多边形的边数、边界圆的半径,并显示多边形上角点的坐标。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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();
     }

   }
}


您需要切换您的sincos表达式。然后多边形的第一个点将始终位于(radius, 0)处,即与3点钟位置对齐。

1
2
     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);