この記事では、宝くじターンテーブルを描画するJS + Canvasの具体的なコードを参考までに共有します。具体的な内容は次のとおりです。 Canvas で描いたターンテーブルを使ったラッキーくじを皆さんにシェアしたいと思います。スイッチをクリックしてターンテーブルを起動すると、ターンテーブルが回転し始めます。ターンテーブルが停止すると、ポインターで指した領域が抽選された賞品となり、ターンテーブルの中央に表示されます。効果は次のとおりです。 アニメーションコードは次のとおりです。 <!DOCTYPE html> <html> <ヘッド> <スタイル> キャンバス { 背景: #eee; } </スタイル> <title>キャンバスがラッキードローホイールを引きます</title> <スクリプト> window.onload = 関数(){ var キャンバス = document.getElementById("キャンバス"); var cobj = canvas.getContext("2d"); var btn = document.getElementById("btn"); var num = Math.PI / 180; cobj.translate(250, 250); var colorArr = ["#24a274", "#2a70a6", "#6d56c3", "#b23880", "#7a9a36", "#b48548", "#397839", "#89489c"]; var textArr = ["js", "html", "css", "php", "mysql", "node", "flutter", "java"]; var 角度 = 0; btn.onclick = 関数(){ 場所を再読み込みします。 }; var ステップ = 10 + 10 * Math.random(); var t = setInterval(関数() { (ステップ <= 0.3) の場合 { クリア間隔(t); var num1 = Math.ceil(角度 / 45); var con = textArr[textArr.length - num1]; cobj.font = "18px サンセリフ"; cobj.textAlign = "中央"; cobj.fillText(con, 0, 0); } それ以外 { 角度 >= 360 の場合 角度 = 0; } ステップ * = 0.95; 角度 += ステップ; cobj.clearRect(-200, -200, 500, 500); cobj.beginPath(); cobj.lineWidth = 5; cobj.moveTo(135, 0); 150 行目から 0 行目までの範囲を 0 に設定します。 cobj.stroke(); cobj.lineWidth = 2; cobj.save(); cobj.rotate(角度 * 数値); (var i = 1; i <= 8; i++) の場合 { cobj.beginPath(); cobj.moveTo(0, 0); cobj.fillStyle = colorArr[i - 1]; cobj.arc(0, 0, 130, (i - 1) * 45 * num, i * 45 * num); cobj.closePath(); cobj.stroke(); 埋め込み } cobj.beginPath(); cobj.fillStyle = "#fff"; cobj.arc(0, 0, 60, 0, 2 * Math.PI); 埋め込み (var i = 0; i < 8; i++) の場合 { cobj.save(); cobj.beginPath(); cobj.rotate((i * 45 + 20) * num); cobj.fillStyle = "#222"; cobj.font = "18px サンセリフ"; テキストをテキストエリアに埋め込む cobj.restore(); } cobj.restore(); } }, 60) } </スクリプト> </head> <本文> <キャンバスid="キャンバス" 幅=500 高さ=500></キャンバス> <input type="button" value="開始" id="btn" /> </本文> </html> 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: Dockerにおけるオーバーレイネットワークの詳細な説明
1. 子コンポーネントのthis.$parent.eventを通じて親コンポーネントメソッドを直接呼...
シンプルな機能: ブラウザの右上隅にあるプラグイン アイコンをクリックすると小さなポップアップ ウィ...
この記事では、Linux MySQL 8.0.18のインストールと設定のグラフィックチュートリアルを...
テーブルを美しくするために、セルごとに異なる境界線の色を設定できます。基本的な構文<TD 境界...
1. 絶対位置とマージンを使用するこの方法の原則は、左側と右側をドキュメントの流れから外れるように配...
平行ボックスの余白 (二重余白の重なり) に関する面接の質問: 1 つのボックスに上余白があり、もう...
1. catalina.bat は UTF-8 に設定する必要があります。UTF-8 に設定しないと...
半夜かけてようやくブログのスタイルを大体完成させることができました。ブログ全体が青を基調としていて、...
フレーム ウィンドウの関連付けを実現するには、次に示すように、ハイパーリンクの「ターゲット」ウィンド...
この記事では、 Dockerコンテナ ( docker-composeを使用してオーケストレーション...
目次序文インライン要素の中央揃えテキストを垂直に中央揃え要素を水平方向に中央揃えにするブロックレベル...
目次1. 例: これはデータとメソッドを直接取得できます2. 環境を準備し、ソースコードをデバッグし...
序文MySQL データベースの文字列型は、CHAR、VARCHAR、BINARY、BLOB、TEXT...
Mysql は、高性能なデータ ストレージ サービスを提供する主流のオープン ソース リレーショナル...
Docker は、開発者やシステム管理者がアプリケーションを軽量コンテナとして構築およびパッケージ化...