Path Stroke(パスストローク)

ベジェパスに沿ってピクセルパーフェクトなラインを描画するノード。

中級
Since P00

入力ポート

Path(パス)

描画するベジェパス

Path
Color()

線の色(接続時はパラメータより優先)

Color
Fill Color(塗り色)

閉じパスの塗り色(接続時はパラメータより優先)

Color

出力ポート

Image(画像)

描画されたパス画像(透明背景)

Image
Pixel Line(ピクセル線)

描画前のピクセル座標列(下流のピクセル処理用)

PixelLine

パラメータ

名前デフォルト説明
WidthInt64キャンバスの幅(ピクセル)
Height高さInt64キャンバスの高さ(ピクセル)
Scope対象サブパスEnum`すべて`すべてのサブパスを描画するか、1 本だけ描画するか
Sub-path使うサブパスInt0個別モード時に使うサブパス
Thickness太さInt1線の太さ(ピクセル)
ColorColor白 (1,1,1,1)線の色(入力ポート未接続時に使用)
ピクセルパーフェクトピクセルパーフェクトBooltrueL字ダブリを除去して1pxラインを補正(太さ=1のみ有効)
PP モードPP モードEnumRemoveCornerピクセルパーフェクト補正モード(下記参照)
閉パス外積モード閉パス外積モードBoolfalse閉じたサブパスに外積ベースの内/外エッジ削除を適用
閉パス削除側閉パス削除側EnumOuter閉パスのどちら側のエッジを削除するか(Inner / Outer)
閉パス塗りつぶし閉パス塗りつぶしBoolfalse閉じたサブパスの内部を塗りつぶす
Fill Color塗り色Color白 (1,1,1,1)塗り色(入力ポート未接続時に使用)

描画アルゴリズム

thickness = 1(ピクセルパーフェクトモード)

  1. 各セグメントを rasterize_bezier_segment() でサンプリング → ピクセル座標列に変換

- .5 境界上の端点は round() 突き出し防止のためスキップ

  1. 全セグメントの座標を統合(接合点の重複除去)
  2. 接合点角ピクセル復元: .5,.5 アンカーで対角ギャップが検出された場合、角ピクセルを挿入して正方形等の角欠けを防止(三角形等の非直角頂点では挿入しない)
  3. 閉パス: 終端→始点をブレゼンハムで接続
  4. ensure_8connected() で8方向接続を保証
  5. pixel_perfect が有効なら PP 補正で L字ダブリを除去
  6. 閉パス: ラップアラウンド L字補正
  7. 結果のピクセル座標を画像に描画

thickness ≥ 2

各セグメントを十分な解像度でサンプリングし、隣接サンプル間を太い Bresenham ライン(円形ブラシ)で描画。

fill_closed = true

閉じサブパスの内部をスキャンラインで塗りつぶし(ストロークの下に塗る)。thickness=1 時は PP 補正済み座標列をポリゴンとして使用。

使用例

基本的なパス描画

[BezierPath] → path → [PathStroke] → output → [Preview]

色付きパス

[ColorRGB] → color → [PathStroke] → output → [Blend] → [Preview]
                          ↑
                     [BezierPath]

multipath の 1 本だけ描く

[MultiPath] → path → [PathStroke(sub_path_scope:Single, sub_path_index:1)] → [Preview]

ピクセル座標列の下流処理

[BezierPath] → path → [PathStroke] → pixel_line → [PixelLineNode]

注意事項

  • pixel_perfect 補正は thickness = 1 のときのみ 適用されます
  • パス未接続時は空の透明画像を出力します
  • is_generator: true のため、キャンバスサイズバインドの対象になります
  • .5,.5 アンカーポイントの角ピクセル復元は rasterize_subpath 内部で自動的に処理されます
  • sub_path_scope = 個別 の時だけ sub_path_index が表示されます
  • sub_path_index の上限は、入力パスのサブパス数に合わせて UI が更新します

💡 ヒント

  • `pixel_perfect` 補正は **thickness = 1 のときのみ** 適用されます
  • パス未接続時は空の透明画像を出力します
  • `is_generator: true` のため、キャンバスサイズバインドの対象になります
  • `.5,.5` アンカーポイントの角ピクセル復元は `rasterize_subpath` 内部で自動的に処理されます
  • `sub_path_scope = 個別` の時だけ `sub_path_index` が表示されます
  • `sub_path_index` の上限は、入力パスのサブパス数に合わせて UI が更新します

関連ノード

bezierpath
pathstroke
preview
colorrgb
blend
multipath
pixellinenode
Path Stroke (パスストローク) — PixPipeline ノード解説