javafx - 如何在 JavaFX 中绘制等边三角形?
问题描述
我正在尝试使用 JavaFX 创建一个等边三角形。据说使用 Polygon and setLayoutX()
and setLayoutY()
。那么该怎么做呢?这是我试过的代码:
@Override public void start(Stage stage) throws Exception {
stage.setTitle("Board");
StackPane root = new StackPane();
Scene scene = new Scene(root, 600, 519);
stage.setScene(scene);
Polygon triangle = new Polygon();
stage.show();
}
解决方案
两个问题:
- 您没有将多边形添加到容器中
- 您没有定义多边形的点
你的代码应该是这样的:
@Override
public void start (Stage stage) throws Exception {
stage.setTitle("Board");
Polygon triangle = new Polygon();
//triangle.setLayoutX(100);
//triangle.setLayoutY(400);
triangle.getPoints()
.addAll(new Double[] {300.0, 50.0, 250.0, 100.0, 350.0, 100.0,});
Group root = new Group(triangle); // You can replace with StackPane for center alignment
Scene scene = new Scene(root, 600, 519);
stage.setScene(scene);
stage.show();
}
完成此操作后,您应该会看到类似于下图的内容。您需要找出三角形的 (x,y) 坐标。
当我取消注释setLayoutX()
和setLayoutY()
行时,结果如下图所示。
如果您需要 Java FX 教程中的绘图,请查看此站点。
推荐阅读
- html - 父 div 覆盖子 div 的 ::after 背景
- python - 使用 pandas str.split,其中出现需要是 pandas 列的值
- node.js - 使用 docker 时,npm 库不工作
- c# - 没有视图矩阵的 WorldToScreen 函数
- next.js - 如何避免 Next.js 中出现“You have not declared a namespacesRequired array”错误?
- c++ - 尝试使用 GDAL 的 GDALDataset::GetLayers() 编译时未定义的引用
- javascript - 当我将状态从 true 更改为 false 时,为什么我的模态不会隐藏在反应中?
- python - Tensorflow:ValueError:没有为任何变量提供梯度
- angular - signalr .net core,角9的cors问题
- php - API调用失败时如何让PHP执行API调用