メインコンテンツまでスキップ

windmillTile: Windmill Pattern Tiling

Rotational tiling pattern generation​

The windmillTile functions create windmill-like patterns by applying rotational transformations to square tiles based on their grid coordinates. Each tile is rotated by an amount determined by its position in the grid, creating a windmill or pinwheel effect.

The rotation angle for each tile is calculated using:

α=(∣mod(t.z,2)−mod(t.w,2)∣+mod(t.w,2)×2)×0.25×turn\alpha = \left(|mod(t.z, 2) - mod(t.w, 2)| + mod(t.w, 2) \times 2\right) \times 0.25 \times turn

Where t.zw are the tile coordinates and turn controls the rotation amount.

Available Functions​

FunctionInput TypesOutput TypeDescription
windmillTilevec4, floatvec4Windmill with custom turn amount
windmillTileDefaultvec4vec4Windmill with TAU rotation
windmillTileVec2vec2vec4Windmill from UV coordinates
windmillTileFloatvec2, floatvec4Scaled windmill pattern
windmillTileVec2Scalevec2, vec2vec4Vector-scaled windmill pattern

Parameters​

  • t: Tile coordinates (from sqTile)
  • turn: Rotation multiplier (default is TAU)
  • v: UV coordinates for pattern generation
  • s: Scale factor(s)
ライブエディター

const fragment = () => {
      const scale = iTime.mul(0.3).sin().mul(2).add(4)
      const tile = windmillTileFloat(uv, scale)
      const color = tile.xy.add(tile.zw.mul(0.1))
      return vec4(color, 0.5, 1)
}
結果
Loading...