p5.pave2riso

Fill の種類

動作サンプルを見る

パスの塗りつぶし方法は4種類あり、typeプロパティで指定できます。


solid(ベタ塗り)

シンプルなベタ塗りです。各チャンネルのインク濃度を指定します。

fill: {
  type: 'solid',
  channelVals: [100, 50, 0]  // channel1: 100%, channel2: 50%, channel3: 0%
}

プロパティ

名前 必須 説明
type 'solid' 固定値
channelVals number[] 各チャンネルのインク濃度(0-100%)
filter FilterConfig \| FilterConfig[]   フィルター
halftone HalftoneConfig   ハーフトーン
dither DitherConfig   ディザ

pattern(パターン)

p5.patternライブラリを使ったパターンを適用できます。

fill: {
  type: 'pattern',
  PTN: 'stripe',           // パターン名
  patternArgs: [10],       // パターン関数への引数
  patternAngle: 45,        // パターンの回転角度
  channelVals: [100, 0, 0]
}

プロパティ

名前 必須 説明
type 'pattern' 固定値
PTN string パターン名(PTNオブジェクトのキー)
patternArgs unknown[] パターン関数への引数
patternAngle number   パターンの回転角度(度)
channelVals number[] 各チャンネルのインク濃度
filter FilterConfig \| FilterConfig[]   フィルター
halftone HalftoneConfig   ハーフトーン
dither DitherConfig   ディザー

使えるパターン

p5.patternが提供するパターン関数が使えます。

など。 詳しくはp5.patternのドキュメントを参照してください。


gradient(グラデーション)

グラデーションの指定については、チャンネル指定でcolorStopsを設定します。

fill: {
  type: 'gradient',
  gradientType: 'linear',
  gradientDirection: 'LR',  // 左から右
  colorStops: [
    {
      channel: 0,
      stops: [
        { position: 0, depth: 100 },
        { position: 100, depth: 0 }
      ]
    },
    {
      channel: 1,
      stops: [
        { position: 0, depth: 0 },
        { position: 100, depth: 100 }
      ]
    }
  ]
}

プロパティ

名前 必須 説明
type 'gradient' 固定値
gradientType GradientType グラデーションの種類
gradientDirection GradientDirection   方向(linearのみ)
colorStops ColorStop[] カラーストップ設定
filter FilterConfig \| FilterConfig[]   フィルター
halftone HalftoneConfig   ハーフトーン
dither DitherConfig   ディザー

GradientType

説明
'linear' 線形グラデーション
'radial' 放射状グラデーション
'conic' 円錐グラデーション

GradientDirection(linearのみ)

説明
'TD' 上から下(Top to Down)
'DT' 下から上
'LR' 左から右(Left to Right)
'RL' 右から左
'LTRB' 左上から右下
'RTLB' 右上から左下
'LBRT' 左下から右上
'RBLT' 右下から左上

ColorStop

各チャンネルのグラデーション設定です。

interface ColorStop {
  channel: number        // チャンネルインデックス(0始まり)
  stops: Array<{
    position: number     // 位置(0-100%)
    depth: number        // インク濃度(0-100%)
  }>
}

image(画像)

p5.Imageを使った画像塗りです。画像のグレースケール値がインク濃度になります。カラー画像を指定すると、現状では自動的にグレースケールにして処理します(RGB/CMYKチャンネルから分版する仕組みを開発中です)。

fill: {
  type: 'image',
  image: myImage,
  fit: 'cover',
  alignX: 'center',
  alignY: 'middle',
  channelVals: [100, 0, 0]
}

プロパティ

名前 必須 説明
type 'image' 固定値
image p5.Image 画像オブジェクト
fit ImageFit   フィット方式
alignX AlignX   水平方向の揃え
alignY AlignY   垂直方向の揃え
scale number   スケール倍率
offset [number, number]   オフセット [x, y]
rotate number   回転角度(度)
channelVals number[]   各チャンネルのインク濃度
filter FilterConfig \| FilterConfig[]   フィルター
halftone HalftoneConfig   ハーフトーン
dither DitherConfig   ディザー

ImageFit

説明
'cover' アスペクト比を維持して領域を覆う
'contain' アスペクト比を維持して領域に収める
'fill' 領域にぴったり合わせる(歪む可能性あり)
'none' 元のサイズのまま

AlignX / AlignY

type AlignX = 'left' | 'center' | 'right' | number
type AlignY = 'top' | 'middle' | 'bottom' | number

数値を指定すると、その位置(0-1の割合)に配置されます。


共通のエフェクトオプション

すべてのFillタイプで、以下のエフェクトオプションが使えます:

fill: {
  type: 'solid',
  channelVals: [100, 0, 0],
  halftone: { halftoneArgs: [4, 45, 1] }  // ハーフトーンを適用
}

< はじめに 次: Stroke の種類 >