如何在 javafx 中使用 GridPane 制作圆形金字塔图案

How to make pyramid patterns of Circle shape using GridPane in javafx

我想创建金字塔左角、右角、中心角,在 GridPane 中使用圆形,我已经完成了左角,但是花了 2 天时间创建右角和中心角,但没有成功。

如果有人知道或可以给我一些算法想法,我将不胜感激,请帮助我!

已输出左角

用下面的代码

        int i, j;
        for (i = 0; i < n; i++) {
            for (j = 0; j <= i; j++) {
                Circle circle = new Circle();
                circle.setStroke(Paint.valueOf(Color.BLACK.toString()));
                circle.radiusProperty().bind(ballsModel.radiusProperty());
                circle.strokeWidthProperty().bind(ballsModel.strokeProperty());
                circle.fillProperty().bind(Bindings.createObjectBinding(() -> Paint.valueOf(ballsModel.getColor().name())));
                grid.addRow(i, circle);
            }
        }

Need to figure out following patterns:

中心角

直角

金字塔部分的示例

package pyramid;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.StackPane;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;


public class Pyramid extends Application {



   void createPyramid(){
   gridPane.setHgap(5);
   gridPane.setVgap(5);
   int center = 4 ;


   for (int row = 0; row <= 4; row++ ) {

      int  range = (1 +(2* row));

      int  startColumn = center-range/2 ;

       for(int i = 0 ; i<range; i++){
           Circle circle  = new Circle(20,javafx.scene.paint.Color.BLUE);
           gridPane.add(circle,startColumn+i , row);

       }     

   }} 

@Override
public void start(Stage primaryStage) {


    StackPane root = new StackPane();
    root.getChildren().add(gridPane);
    this.createPyramid();

    Scene scene = new Scene(root, 600, 600);

    primaryStage.setTitle("Pyramid");
    primaryStage.setScene(scene);
    primaryStage.show();
}


public static void main(String[] args) {
    launch(args);
}}