Canvas非覆蓋畫圓環扇形

2022-02-24 04:02:06 字數 736 閱讀 6244

需求最優解

嘗試丟擲問題

基本都是畫餅狀然後中心覆蓋乙個圓,可是我需要的是透明非覆蓋的乙個圓環扇形整體,動手吧。

嘗試的辦法有以下幾種:

畫兩個同角度的餅狀扇形,利用source-in source-out xor去重的功能,填充非重疊部分。

還是畫兩個餅狀扇形,然後利用奇偶環繞fill('evdodd') 填充以保留非重疊部分的扇形,重疊部分則不填充。

直接畫兩條弧形然後把他們的頭端連線,直接填充

your browser does not support the canvas element.

** 這是最簡單的辦法,但是確是最後才想到.. **

再看看其他辦法

your browser does not support the canvas element.

效果如圖:

乍眼一看以為如我所願,然後一放大,發現扇形的半徑邊居然也顯示了出來??

試了xor 和 source-in 也都有同樣的問題,奇偶環繞也不例外,也查詢了相關,都沒有找到解決辦法,也只能靠自己。

解決辦法是把小扇形描邊再進行去除重疊,並且描邊的linewidth還要大於1.5

才會'看起來不顯示'.

奇偶環繞 xor等填充乙個含有斜線(直線不會)的扇形時,為什麼會出現漏邊的現象?

canvas學習筆記(畫圓)

canvas是html5標籤,用來繪製影象。該標籤是容器,我們通過js指令碼來繪製圖形。的簡單例項 畫個圓,面試遇到過 1.首先我們在body中宣告乙個canvas 2.然後通過js來繪製圓形 var x document.getelementbyid yuan var y x.getcontext...

HTML5之Canvas畫圓形

html5之canvas畫圓形 1 設計原始碼 2 設計結果 3 分析說明 1 建立路徑 context.beginpath 2 建立圓形路徑 context.arc 600,300,200,0,math.pi 2,true 第乙個引數x 起點橫座標 第二個引數y 起點縱座標 第三個引數radius...

canvas畫圓環 二 之多色間隔

通過canvas畫可自定義顏色段的圓環,可當進度條使用,本文章做了簡單的封裝可直接使用,也可自定義更改。同上篇,需要設定外層的item canvas的寬高,內層canvas會設定成和外層一樣。定義函式 function process 此處為每格多出來的部分 if ring.percent 10 0...