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

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)
}