代码之家  ›  专栏  ›  技术社区  ›  Allen

正确使用转换

  •  0
  • Allen  · 技术社区  · 14 年前

    在下面的代码中,我尝试使用手工生成的点来生成一个六边形单位hex,然后我想将其放大。但是,它不起作用。我得到的不是带绿色边框的白色六角形,而是实心绿色六角形。我是否误解了转化规模的影响?它似乎开始与单位十六进制和油漆出一路扩大到十六进制,因此颜色。还是又是误会?

    如何获得具有边框宽度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
    }
    
    1 回复  |  直到 14 年前
        1
  •  0
  •   Tom Tresansky    14 年前

    问题似乎是你在设置 strokeWidth 到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
            }
    

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

    推荐文章