Javafx 正确使用变换

Javafx 正确使用变换,javafx,Javafx,在下面的代码中,我试图使用我手工导出的单位六边形的点来制作一个六边形,然后我想放大它。但是,它不起作用。我得到的不是一个带绿色边框的白色十六进制,而是一个实心的绿色十六进制。我是否误解了转型规模的影响?它似乎从单位六边形开始,一直画到按比例缩小的六边形,因此是颜色。还是这又是一种误解 如何获得具有边框宽度X和所需颜色填充的可缩放形状 Polygon { points: [1, 0, 0.5, -0.866, -0.5, -0.866, -1, 0, -0.5, 0.866, 0.5,

在下面的代码中,我试图使用我手工导出的单位六边形的点来制作一个六边形,然后我想放大它。但是,它不起作用。我得到的不是一个带绿色边框的白色十六进制,而是一个实心的绿色十六进制。我是否误解了转型规模的影响?它似乎从单位六边形开始,一直画到按比例缩小的六边形,因此是颜色。还是这又是一种误解

如何获得具有边框宽度X和所需颜色填充的可缩放形状

Polygon {
     points: [1, 0, 0.5, -0.866, -0.5, -0.866, -1, 0, -0.5, 0.866, 0.5, 0.866]
     fill: Color.WHITE
     translateX: 100
     translateY: 100
     strokeWidth: 2
     transforms: Scale {x: 20, y: 20}
     stroke: Color.GREEN
     opacity: 0.3
}

问题似乎是您将
冲程宽度设置为2

strokeWidth是在缩放变换之前应用的,因此您有一个strokeWidth为2的单位十六进制,它完全遮挡了中心的白色十六进制。这个模糊的(显然是绿色的)六边形被放大20倍…产生一个更大的绿色六边形

尝试将strokeWidth设置得更低,如下所示:

Polygon {
            points: [1, 0, 0.5,  - 0.866,  - 0.5,  - 0.866,  - 1, 0,  - 0.5, 0.866, 0.5, 0.866]
            fill: Color.WHITE
            translateX: 100
            translateY: 100
            strokeWidth: 0.5
            transforms: Scale {x: 20, y: 20}
            stroke: Color.GREEN
            opacity: 0.3
        }

你应该看到白色的六边形和绿色的边框。继续减小笔划宽度,直到获得所需的结果。

我注意到变换会影响路径,因此,如果笔划宽度为1,则有一个小的白色内部。但问题仍然存在。我觉得这种行为很奇怪,似乎应该是另外一种。