javafx画一个椭圆,中心在(150,100),水平半径为100像素,垂直半径为50像素,画笔颜色随机产生,不填充颜色,生成16个椭圆,每个椭圆旋转一个角度后添加到面板中。
时间: 2023-09-23 14:12:07 浏览: 93
以下是一个简单的JavaFX程序,可以满足您的需求:
```java
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Ellipse;
import javafx.stage.Stage;
public class EllipseDemo extends Application {
private static final int WIDTH = 300;
private static final int HEIGHT = 200;
private static final int CENTER_X = 150;
private static final int CENTER_Y = 100;
private static final int H_RADIUS = 100;
private static final int V_RADIUS = 50;
private static final int NUM_ELLIPSES = 16;
@Override
public void start(Stage primaryStage) {
Pane root = new Pane();
for (int i = 0; i < NUM_ELLIPSES; i++) {
Ellipse ellipse = new Ellipse(CENTER_X, CENTER_Y, H_RADIUS, V_RADIUS);
ellipse.setFill(null);
ellipse.setStroke(getRandomColor());
ellipse.setRotate(i * 360.0 / NUM_ELLIPSES);
root.getChildren().add(ellipse);
}
Scene scene = new Scene(root, WIDTH, HEIGHT);
primaryStage.setScene(scene);
primaryStage.show();
}
private Color getRandomColor() {
double r = Math.random();
double g = Math.random();
double b = Math.random();
return new Color(r, g, b, 1);
}
public static void main(String[] args) {
launch(args);
}
}
```
程序创建了一个 `Pane` 对象作为根节点,然后使用一个循环创建了16个椭圆,并添加到根节点中。每个椭圆都使用 `setStroke` 方法设置了随机的画笔颜色,使用 `setRotate` 方法旋转了一定的角度。最后,将根节点添加到 `Scene` 中,并显示 `Stage`。
运行程序,就可以看到生成的16个椭圆了:
阅读全文