Path Stroke(パスストローク)
ベジェパスに沿ってピクセルパーフェクトなラインを描画するノード。
中級
Since P00
入力ポート
Path(パス)
描画するベジェパス
Color(色)
線の色(接続時はパラメータより優先)
Fill Color(塗り色)
閉じパスの塗り色(接続時はパラメータより優先)
出力ポート
Image(画像)
描画されたパス画像(透明背景)
Pixel Line(ピクセル線)
描画前のピクセル座標列(下流のピクセル処理用)
パラメータ
| 名前 | 型 | デフォルト | 説明 |
|---|---|---|---|
| Width幅 | Int | 64 | キャンバスの幅(ピクセル) |
| Height高さ | Int | 64 | キャンバスの高さ(ピクセル) |
| Thickness太さ | Int | 1 | 線の太さ(ピクセル) |
| Color色 | Color | 白 (1,1,1,1) | 線の色(入力ポート未接続時に使用) |
| ピクセルパーフェクトピクセルパーフェクト | Bool | true | L字ダブリを除去して1pxラインを補正(太さ=1のみ有効) |
| PP モードPP モード | Enum | RemoveCorner | ピクセルパーフェクト補正モード(下記参照) |
| 閉パス外積モード閉パス外積モード | Bool | false | 閉じたサブパスに外積ベースの内/外エッジ削除を適用 |
| 閉パス削除側閉パス削除側 | Enum | Outer | 閉パスのどちら側のエッジを削除するか(Inner / Outer) |
| 閉パス塗りつぶし閉パス塗りつぶし | Bool | false | 閉じたサブパスの内部を塗りつぶす |
| Fill Color塗り色 | Color | 白 (1,1,1,1) | 塗り色(入力ポート未接続時に使用) |
描画アルゴリズム
thickness = 1(ピクセルパーフェクトモード)
- 各セグメントを
rasterize_bezier_segment()でサンプリング → ピクセル座標列に変換
- .5 境界上の端点は round() 突き出し防止のためスキップ
- 全セグメントの座標を統合(接合点の重複除去)
- 接合点角ピクセル復元:
.5,.5アンカーで対角ギャップが検出された場合、角ピクセルを挿入して正方形等の角欠けを防止(三角形等の非直角頂点では挿入しない) - 閉パス: 終端→始点をブレゼンハムで接続
ensure_8connected()で8方向接続を保証pixel_perfectが有効なら PP 補正で L字ダブリを除去- 閉パス: ラップアラウンド L字補正
- 結果のピクセル座標を画像に描画
thickness ≥ 2
各セグメントを十分な解像度でサンプリングし、隣接サンプル間を太い Bresenham ライン(円形ブラシ)で描画。
fill_closed = true
閉じサブパスの内部をスキャンラインで塗りつぶし(ストロークの下に塗る)。thickness=1 時は PP 補正済み座標列をポリゴンとして使用。
使用例
基本的なパス描画
[BezierPath] → path → [PathStroke] → output → [Preview]色付きパス
[ColorRGB] → color → [PathStroke] → output → [Blend] → [Preview]
↑
[BezierPath]ピクセル座標列の下流処理
[BezierPath] → path → [PathStroke] → pixel_line → [PixelLineNode]注意事項
pixel_perfect補正は thickness = 1 のときのみ 適用されます- パス未接続時は空の透明画像を出力します
is_generator: trueのため、キャンバスサイズバインドの対象になります.5,.5アンカーポイントの角ピクセル復元はrasterize_subpath内部で自動的に処理されます
💡 ヒント
- •`pixel_perfect` 補正は **thickness = 1 のときのみ** 適用されます
- •パス未接続時は空の透明画像を出力します
- •`is_generator: true` のため、キャンバスサイズバインドの対象になります
- •`.5,.5` アンカーポイントの角ピクセル復元は `rasterize_subpath` 内部で自動的に処理されます
関連ノード
bezierpath
pathstroke
preview
colorrgb
blend
pixellinenode