スタートページ>
Javascript>
CANVAS
凸領域の塗りつぶし paintArea(x,y fillcolor)
右下のcanvasで、Pの領域(xy軸、直線、円弧で閉じられた内部)にある任意の座標(x, y)とfillcolor(色名称)を与えると、領域全体がfillcolor色に塗りつぶされます。
- 自作のライブラリxycoordinate.jsに収録されている関数 paintArea(x,y fillcolor) の説明です。不完全なのですが、便利な機能です。
- 領域は点(x,y)から見て、凸でなければなりません。図の円内はどの領域も凸ですが、円外の黒地の領域は凸になっていない部分(円弧が凹になっている)ので塗れません。
図の「P」などの文字も領域内の凹要素になりますので、うまく塗れません(この例では[実行]のときに「P」を外しています)。
- ☆のように全体では凹がある領域の場合でも、適当に△内部の点を与えれば部分的に塗れます。それで、複数回(x,y)の位置を変えてpaintArea(x,y fillcolor)を繰り返すことにより、全体を塗りつぶすことができます。