代码如下
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Polygon;
import javafx.stage.Stage;
public class SevenSidedPolygonExample extends Application {
@Override
public void start(Stage primaryStage) {
// 创建一个多边形并设置其顶点
Polygon polygon = new Polygon();
// 假设我们要画一个等边七边形,中心在(200, 200),半径为100
// 我们可以计算每个顶点的坐标
double centerX = 200;
double centerY = 200;
double radius = 100;
double angleStep = 360.0 / 7; // 因为是七边形,所以每个角度是360/7
for (int i = 0; i < 7; i++) {
double angle = Math.toRadians(i * angleStep); // 将角度转换为弧度
double x = centerX + radius * Math.cos(angle);
double y = centerY - radius * Math.sin(angle); // 注意Y轴的方向,这里假设向上为正方向
polygon.getPoints().addAll(x, y);
}
// 设置多边形的填充颜色
polygon.setFill(Color.BLUE);
// 创建一个容器来包含多边形
Pane root = new Pane();
root.getChildren().add(polygon);
// 创建一个场景并将容器添加到其中
Scene scene = new Scene(root, 400, 400);
// 将场景设置为舞台的根,并显示舞台
primaryStage.setScene(scene);
primaryStage.setTitle("JavaFX Seven-Sided Polygon Example");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
在这个例子中,我们首先计算了一个等边七边形的每个顶点的坐标。假设七边形的中心在(200, 200)
,半径为100
。我们使用循环和三角函数来计算每个顶点的坐标,并将它们添加到Polygon
的getPoints()
方法中。最后,我们设置了多边形的填充颜色,并将其添加到Pane
容器中。然后,我们创建一个Scene
,将Pane
添加到场景中,并将场景设置为Stage
的根。最后,我们显示舞台。
效果如下