當在畫布上填充路徑時,根據創建路徑的方式,路徑交叉點將用填充顏色繪製或保留爲空白。當畫布路徑以某種方式相交時,它不會被繪製
下面是一個例子:
http://jsfiddle.net/C3Hbb/
//Works as expected:
ctx.beginPath();
ctx.rect(50, 50, 50, 50);
ctx.rect(25, 50, 50, 50);
ctx.fill();
//Transparent on intersection:
ctx.beginPath();
ctx.rect(25, 150, 50, 50);
ctx.rect(100, 150, -50, 50);
ctx.fill();
我預期既交點要繪製的同樣的方式,因爲這構成它們的矩形大致相當,但在第一個,交點繪有填充顏色,第二個交點是透明的。
爲什麼它在這兩個交叉點上表現不同?有沒有辦法避免「透明」的交叉行爲?
'rect'只是一個簡寫,如果使用moveTo和lineTo,即使沒有負值,也會發生同樣的情況(例如:http://jsfiddle.net/uEVsE/)。 – Draivin 2013-03-26 15:34:46