HTML5+Canvasのブラックホール特殊効果
<html>
<頭>
<メタ文字セット="utf-8">
<title>不要失去你的彩虹</title>
<スタイル>
キャンバス {### 位置: 絶対;
上: 0;
左: 0;
}
</style>
</head>
<本文>
<canvas id=c></canvas>
<スクリプト>
w = c.width = window.innerWidth;
とします。 h = c.height = window.innerHeight;
とします。
const ctx = c.getContext('2d');
const オプション = {
hex長さ: 30,
lenFn: ({ len, t }) =>
len Math.sin(t),
radFn: ({ rad, len, t, 興奮 }) =>
rad (興奮 opts.propFn({ len, t }))*2 / 4,
propFn: ({ len, t }) =>
len / opts.hexLength / 10 - t,
興奮Fn: ({ len, t }) =>
Math.sin(opts.propFn({ len, t }))**2,
colorFn: ({ rad, 興奮, t }) =>
`hsl(${rad / Math.TAU * 360 t}, ${興奮 * 100}%, ${20 興奮 * 50}%)`,
タイムステップ: .01,
ランダムジグ: 8,
リペイントカラー: 'rgba(0,0,0,.1)'
};
ティック = 0;
にします
Math.TAU = 6.28318530717958647692;
const 頂点 = [];
クラス頂点 {
コンストラクター({ x, y }) {
this.len = Math.sqrt(x*x y*y);
this.rad = Math.acos(x / this.len) * (y > 0 ? 1 : -1) .13;
this.prevPoint = { x, y };
}
ステップ() {### const 興奮 = opts.excitementFn({ len: this.len, t: Nick });
const param = {
レン: this.len,
rad: this.rad,
t: チェックマーク、
興奮### };
const nextLen = opts.lenFn(param);
const nextRad = opts.radFn(param);
const color = opts.colorFn(param);
ctx.ストロークスタイル = カラー;
ctx.lineWidth = 興奮 .2;
ctx.beginPath();
ctx.moveTo(this.prevPoint.x, this.prevPoint.y);
this.prevPoint.x = nextLen * Math.cos(nextRad)
Math.random() * (1-興奮)**2 * opts.randomJig * 2 - opts.randomJig;
this.prevPoint.y = nextLen * Math.sin(nextRad)
Math.random() * (1-興奮)**2 * opts.randomJig * 2 - opts.randomJig;
ctx.lineTo(this.prevPoint.x, this.prevPoint.y);
ctx.ストローク();
}
静的gen() {
頂点の長さ = 0;
const hexCos = Math.cos(Math.TAU / 12) * opts.hexLength;
const hexSin = Math.sin(Math.TAU / 12) * opts.hexLength;
alternanceX = false;
にします for(let x = 0; x < w; x = hexCos) {
オルタナンス = オルタナンス X = !オルタナンス X;
とします。 for(let y = 0; y < h; y = hexSin opts.hexLength) {
オルタナンス = !オルタナンス;
頂点.push(新しい頂点({
x: x - w / 2,
y: y 交互 * hexSin - h / 2
}))
}
}
}
}
Vertex.gen();
ctx.fillStyle = '#222';
ctx.fillRect(0, 0, w, h);
const anim = () => {
window.requestAnimationFrame(anim);
ティック = opts.timeStep;
ctx.fillStyle = opts.repaintColor;
ctx.fillRect(0, 0, w, h);
ctx.translate(w/2, h/2);
vertices.forEach((vertex) => vertex.step());
ctx.translate(-w/2, -h/2);
}
anim();
window.addEventListener('resize', () => {
w = c.width = window.innerWidth;
h = c.height = window.innerHeight;
Vertex.gen();
ティック = 0;
ctx.fillStyle = '#222';
ctx.fillRect(0, 0, w, h);
})
</スクリプト>
</本文>
</html>
これは HTML5 Canvas のセキュリティ機能であり、必要な友人は直接ダウンロードして使用でき、より有効なコードは PHP 中文ウェブ上にあります。
このサイトのすべてのリソースはネチズンによって提供されたもの、または主要なダウンロード サイトによって転載されたものです。ソフトウェアの整合性をご自身で確認してください。このサイトのすべてのリソースは学習の参考のみを目的としています。商業目的で使用しないでください。そうでない場合は、すべての結果に対して責任を負うことになります。侵害がある場合は、削除するためにご連絡ください。連絡先情報: admin@php.cn
関連記事
18 Jan 2017
これは、jquery と HTML5 Canvas に基づいたラッキードローの特殊効果です。幸運な賞の特殊効果はモバイル端末をサポートしており、Canvas 要素を動的に構築することで大賞ディスクを生成し、jquery コードを通じて賞品をランダムに取得します。
02 Apr 2018
この記事では、HTML5 キャンバスに基づいたテキスト アニメーションの特殊効果を紹介します。必要な方は参考にしてください。
03 Jul 2018
これは、私たちの生活に咲く花火のアニメーション特殊効果をシミュレートする豪華な HTML5 アニメーションです。興味のある方のために、この HTML5 花火の特殊効果を実装するプロセスとコードを簡単に分析してみましょう。それを参照できます
01 Mar 2019
Web デザインのプロセスでは、HTML5 特殊効果コードをよく使用します。ここでは、php 中国語 Web サイトでコンパイルおよび共有されているクールで実用的な HTML5 特殊効果コードをいくつか紹介します。アプリケーションで自由に使用できます。
16 May 2016
これは、私たちの生活に咲く花火のアニメーション特殊効果をシミュレートする豪華な HTML5 アニメーションです。興味のある方のために、この HTML5 花火の特殊効果を実装するプロセスとコードを簡単に分析してみましょう。それを参照してください
19 Jan 2017
これは、HTML5 Canvas を使用して作成された黒板特殊効果です。黒板にチョークを使用して書き込む効果をシミュレートできます。この黒板効果の特徴は次のとおりです。
22 Aug 2019
Web ページ特殊効果は、プログラム コードを使用して Web ページに特殊効果や特殊機能を実装するテクノロジです。Web ページ スクリプト (JavaScript、vbscript) を使用してコードを記述し、動的な特殊効果を作成します。
16 May 2016
この記事では主に、HTML5 キャンバスに基づいた 3D アニメーションの傑作である HTML5 3D 衣服スイング アニメーションの特殊効果を紹介します。興味のある方は参考にしてください。
ホットツール Tags
Hot Tools
HTML5 キャンバスの心ときめくアニメーション特殊効果
HTML5 キャンバスのハートのはためきアニメーション特殊効果は、ブラウザで直接開いてハートを確認できる生成されたアニメーションです。
H5 パンダバウンスゲームのソースコード
HTML5 Mobile Panda もクレイジーなゲームのソース コードです。ゲームの説明: 画面を長押ししてパンダのバネの強さを調整し、石柱にジャンプします。川に落ちたらゲーム終了です。
HTML5 バレンタインデー ボックス アニメーションの特殊効果
svgをベースに、バレンタインデーのラブボックスギフトを開けるアニメーションと、ラブボックスアニメーションの特殊効果を描画します。
H5 3D ローリング ボール ゲームのソース コード
HTML5 クールな 3D ボールローリングモバイルゲームコードのダウンロード。ゲーム紹介: カラー ボールが転がり、マウスまたは携帯電話のタッチ スクリーンでカラー ボールをドラッグすることで、カラー ボールの現在のトラックを制御します。シンプルで操作しやすいモバイルゲームのソースコードです。