Как мне найти центр круга после привязки его к панели ?
circle.centerXProperty().bind(pane.widthProperty().divide(2));
circle.centerYProperty().bind(pane.heightProperty().divide(2));
Я использовал приведенный выше код для привязки свойств круга. Однако, если я хочу получить координаты X и Y центра, их значения равны 0.00
.
Я использовал circle.getCenterX();
и circle.centerXProperty()
.
Может кто-нибудь помочь мне в выяснить, как получить правильный центр круга?
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;
import javafx.scene.text.*;
import java.lang.Math;
public class CharactersAroundCircle extends Application {
public void start(Stage primaryStage){
String str = "Welcome To Java";
Circle circle = new Circle();
System.out.println(str.length());
Pane pane = new Pane();
circle.setRadius(125);
circle.centerXProperty().bind(pane.widthProperty().divide(2));
circle.centerYProperty().bind(pane.heightProperty().divide(2));
circle.setStroke(Color.BLACK);
circle.setFill(new Color(1,1,1,0));
Text text = new Text();
text.setText(String.valueOf(str.charAt(0)));
text.setStroke(Color.BLACK);
text.setFont(Font.font("Times New Roman", 20));
// text.setX(circle.getCenterX() + Math.toRadians(Math.sin(360 / str.length()) * circle.getRadius()));
// text.setY(circle.getCenterY() + Math.toRadians(Math.cos(360 / str.length()) * circle.getRadius()));
text.setX(circle.getCenterX() + 100);
text.setY(circle.getCenterY() + 100);
System.out.println(circle.centerXProperty());
System.out.println(circle.getCenterY());
pane.getChildren().add(text);
pane.getChildren().add(circle);
Scene scene = new Scene(pane, 300, 300);
primaryStage.setTitle("CharactersAroundCircle");
primaryStage.setScene(scene);
primaryStage.show();
}
}