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