Report
This commit is contained in:
29
Report/uml/polyline-fill-algorithm.puml
Normal file
29
Report/uml/polyline-fill-algorithm.puml
Normal file
@@ -0,0 +1,29 @@
|
||||
@startuml
|
||||
title Ломаная + заливка: 3-фазный алгоритм
|
||||
|
||||
start
|
||||
:Input points[], closed, filled;
|
||||
if (points < 2?) then (yes)
|
||||
stop
|
||||
endif
|
||||
|
||||
:Create temporary buffer + copy context;
|
||||
if (closed and filled?) then (yes)
|
||||
:Enable FillCanvas (startFill);
|
||||
endif
|
||||
|
||||
:Draw all segments Pi->Pi+1;
|
||||
if (closed?) then (yes)
|
||||
:Draw segment Pn->P0;
|
||||
endif
|
||||
|
||||
if (fill enabled?) then (yes)
|
||||
:Phase 1:\nBorder pixels already collected in hash-set;
|
||||
:Phase 2:\nSort border keys by (y,x),\nfind row segments,\nchoose interior seeds;
|
||||
:Phase 3:\nStack flood fill (4-neighbors),\nskip border/visited,\npaint fill color;
|
||||
endif
|
||||
|
||||
:Composite temporary buffer to target once;
|
||||
stop
|
||||
|
||||
@enduml
|
||||
Reference in New Issue
Block a user