js canvas繪製360加速球

2021-07-31 22:01:22 字數 1779 閱讀 1666

廣告—:工作室

先給大家看幾個效果圖。(這裡錄製的gif軟體有瑕疵,會有間隔,實際上是很流暢的)

第一張,因為我是銜接上乙個的正弦影象的例子做的。所以直接在上面更改實現的。本想這樣可以實現水波流動的特效,但是正弦影象的繪製方式導致它不能填充,(可以去看看上上篇正弦影象的實現),所以嘍,這是失敗的案例1。

然後來看第二張,其實就是平滑的上公升。沒有什麼特別之處,

接著是最後一張,最後一張是使用三次貝塞爾曲線繪製的。其實,上面的水波是會動的,只不過動的幅度有點小。

總的來說,其實我這是未成功的案例。最好的應試能讓水波滾動。我嘗試著去動態移動貝塞爾曲線的位置,但是這樣的效果並不好。先分析上來看看有沒有大牛提供一些意見。底下我再去思考思考,看看有沒有其他方式去實現。

然後是 上第三張gif的**

只上傳js了

var paint, r;

var width, height;

var j = 0, c = 0,length=0;

/*程式入口*/

function

main

() /*開始進行清除和繪製*/

function

start

() /*繪製乙個外層的圓*/

function

drawarc

() /*計算圓和內部水波的偏移量,並賦給drawsin()長度*/

function

mathr

() /*變化正弦曲線的左右長度*/

length = math.sqrt(r * r - j * j);

drawsin(j);

/*繪製載入百分比*/

paint.beginpath();

paint.fillstyle = "#ff0000";

paint.font = 40 + "px arial";

paint.textalign = 'center';

paint.filltext(c * 100 / (2 * r) + "%", 0, 0);

/*計算角度值,繪製載入中顏色*/

var rad = math.asin(math.abs(j) / r);

paint.beginpath();

paint.fillstyle = "#66ccff";

paint.globalalpha = 0.3;

if (j > 0) else

paint.fill();

}/*繪製貝塞爾曲線,並且長度和位置可變*/

function

drawsin

(h)

還是注意一下。座標軸是從上到下,(-,0,+)

覺得可以的話,就給個讚賞吧!

js canvas 轉動時鐘例項

原始碼 樣本 arc 方法 來構造圓形,其中 起始角設定為 0,結束角設定為 2 math.pi 與繪製圓形是一樣的,只不過採用了 fillstyle屬性來填充顏色。鐘面共有60個刻度 在畫上繪製刻度,其時也就是求每個刻度的座標點。公式如下 假設圓心 o x0,y0 半徑 r 角度 angle 角度...

原生js canvas實現下雪效果

控制下雪 function snowfall snow this.maxflake snow.maxflake 200 最多片數 this.flakesize snow.flakesize 10 雪花形狀 this.fallspeed snow.fallspeed 1 墜落速度 相容寫法 reque...

js canvas逐個打字並畫心形

這是測試啊 漸變可以填充在矩形,圓形,線條,文字等等,各種形狀可以自己定義不同的顏色。以下有兩種不同的方式來設定canvas漸變 createlineargradient x,y,x1,y1 建立線條漸變 createradialgradient x,y,r,x1,y1,r1 建立乙個徑向 圓漸變 ...