如何在Java Scene Builder 2.0中绘制六边形?

时间:2014-11-30 08:43:29

标签: java graphics javafx shape

我想在Java Scene Builder中创建一个自定义形状 - 六边形。我尝试使用“多边形”选项,但我唯一得到的是三角形。 有谁知道我怎么编辑这个?我在某处读到我应该将形状设置为“resizeable”,但Java Scene Builder中的选项是无效的......

我真的很感激任何帮助!

3 个答案:

答案 0 :(得分:3)

我明白了:

 <Polygon fill="DODGERBLUE" layoutX="108.0" layoutY="121.0" stroke="BLACK" strokeType="INSIDE">
 <points>

<Double fx:value="-50.0" />
<Double fx:value="30.0" />

<Double fx:value="0.0" />
<Double fx:value="60.0" />

<Double fx:value="50.0" />
<Double fx:value="30.0" />

<Double fx:value="50.0" />
<Double fx:value="-30.0" />

<Double fx:value="0.0" />
<Double fx:value="-60.0" />

<Double fx:value="-50.0" />
<Double fx:value="-30.0" />



 </points>
</Polygon>

答案 1 :(得分:0)

我不确定场景构建器,因为我从未使用它,但是如果你不能使它工作,你可以手动完成。根据{{​​3}},您可以使用Polygon(double... points)创建一个多边形。 the documentation on polygon有办法获得正确的观点。

答案 2 :(得分:0)

我已创建此课程

  class Hexagon {
    double [] points;
    double center;
    public Hexagon(double side){
      center = getH(side);
      points = new double[12];
      //     X                          Y
      points[0] = 0.0;           points[1] = 0.0;
      points[2] = side;          points[3] = 0.0;
      points[4] = side+(side/2); points[5] = center;
      points[6] = side;          points[7] = center * 2;
      points[8] = 0.0;           points[9] = center * 2;
      points[10] = -side/2;      points[11] = center;

    }

    private double getH(double side) {
      return ((sqrt(3)/2)*side);
    }
    public double [] getPoints(){
      return points;
    }
  }

你可以用它来创建一个像这样的多边形:

Polygon hexagon = new Polygon(new Hexagon(100d).getPoints());