我正在使用CanvasRenderingContext2D中的路徑繪製一組重疊形狀。這很好,但我現在想要統一所有這些路徑,以便當我使用半透明顏色填充時,不顯示重疊。另外我想要描繪一個統一形狀的輪廓。有關如何實現這一目標的任何建議?在CanvasRenderingContext2D中合併多個路徑以作爲集合填充和描邊
0
A
回答
0
謝謝Mark但是我想我已經找到了一個更好的方法來做到這一點。
我在空白位圖數據上繪製我的形狀,然後將其用作alpha蒙版...
1
如果您不希望重疊的半透明像素進行交互,可以將半透明像素(RGBA格式)更改爲等效不透明像素(RGB格式)。
function RGBAtoRGB(r, g, b, a, backgroundR,backgroundG,backgroundB){
var r3 = Math.round(((1 - a) * backgroundR) + (a * r))
var g3 = Math.round(((1 - a) * backgroundG) + (a * g))
var b3 = Math.round(((1 - a) * backgroundB) + (a * b))
return "rgb("+r3+","+g3+","+b3+")";
}
您必須使用單獨的beginPath
繪製每個子形狀。這是必要的,因爲每個beginpath只能獲得一個樣式(樣式== fillStyle)。
根據您的設計要求,您可能需要重新排列子圖形的繪製順序,以便將所需的不透明形狀置於頂部。
相關問題
- 1. 石英弧,填充,描邊和路徑
- 2. 填充後無法描邊路徑
- 3. 合併邊緣和填充區域
- 4. 在iOS上,如何用大綱填充路徑? (或兩個填充和描邊路徑)
- 5. 填充集合()
- 6. 合併和填充表
- 7. 行填充和描邊
- 8. R ggplot2合併shapefile和csv數據以填充多邊形 - 具體
- 9. 將2個CSS類的值合併爲1並總計邊距和填充
- 10. 路徑填充不填充路徑
- 11. CoreGraphics FillPath和描邊路徑
- 12. 集合類路徑
- 13. Android路徑:合併幾條路徑並在合併路徑上繪製文本
- 14. 在列表中填充集合
- 15. 如何在java中填充集合?
- 16. 從GUI填充java集合
- 17. 爲java測試填充mongo集合
- 18. 在Java中合併兩個多邊形
- 19. 作爲進度條在畫布中填充描邊
- 20. 將多個集合合併爲一個並刪除重複的集合
- 21. 如何合併多個多邊形爲一個在java中
- 22. SVG描邊作爲粘合線
- 23. 將多個CGPath合併爲一個路徑
- 24. 填充來自兩個集合
- 25. 如何填充Xaml元素中的多個集合屬性
- 26. 在同一類型上填充多個集合
- 27. 默認描邊和填充SVG
- 28. 將特徵集合合併到多邊形區域中
- 29. 如何將多個url /路徑合併到多維數組中?
- 30. Cypher聚合路徑子集
您正在使用Phaser JS框架,是否正確?如果是這樣,正確的垃圾實際上是「相位框架」。你還可以包含你已經有的相關代碼嗎?它使人們更容易幫助。 –
TBH:我使用Phaser,但這不是Phaser問題,所以我只是一起刪除Phaser標籤... –
我在寫[CanvasRenderingContext2D中的透明組時]時注意到了這個問題(http://stackoverflow.com/q/36578651/1468366)。對於訪問這篇文章的一些用戶,[clipper](https://sourceforge.net/projects/jsclipper/)可能是合併路徑的有用工具。 – MvG