Понимание element.clipPath реакции-native-svg

Я пытался понять, как clipPath работает в Reaction-native-SVG.

Вот метод визуализации компонента, чтобы проиллюстрировать мое недоразумение... и я не могу его переварить:

render() {
  return (
    <View style={{ flex: 1, backgroundColor: "#fa0" }}>
      <Svg width="100%" height="100%">
        <Defs>
          <ClipPath id="windowClip">
            <G>
              {/* A: this clippath is going to be clipped internally by the text */}
              <Rect x={30} y={50} height={100} width={100} />
              <Text x={30} y={70} fontSize={40}>
                Hello world
              </Text>

              {/* B: these... these do not behave like the example above, or below... what's going on????? */}
              <Rect x={30} y={200} height={100} width={100} />
              <Rect
                  x={100}
                  y={250}
                  height={100}
                  width={100}
                  />

              {/* C: this is going to be clipped by the polygon below... */}
              <Rect x={30} y={370} height={100} width={100} />
              <Polygon
                  x={70}
                  y={400}
                  points="0,0 0,100 100,120 120,0"
                  />
            </G>
          </ClipPath>
        </Defs>
        <Rect
           height="100%"
           width="100%"
           fill="#0af"
           clipPath="url(#windowClip)"
           />
      </Svg>
    </View>
  );
}

Созданный clipPath представляет собой группу из 6 фигур, которая применяется к прямоугольнику ниже.

Здесь я отметил, формы, пересекающиеся между собой как A, B и C.

  • Почему поведение противоречиво? почему многоугольник и текст вычитают часть clipPath, когда они пересекаются, а два прямоугольника не пересекаются друг с другом?
  • Есть ли способ заставить B пересекаться, генерируя образец, похожий на C?

0 ответов

Другие вопросы по тегам