ホームページ ウェブフロントエンド H5 チュートリアル 要素画像のミラー反転アニメーション効果をキャンバスに実装する方法

要素画像のミラー反転アニメーション効果をキャンバスに実装する方法

Jul 03, 2018 am 11:15 AM
canvas ミラーフリップ

この記事は主に、キャンバス上の要素画像のミラー反転アニメーション効果を実現する方法に関する関連情報を紹介します。内容は非常に優れているので、参考として共有します。

1. キャンバス画像の水平ミラー反転効果のプレビュー

ここをクリックしてください: キャンバス画像の水平ミラー反転アニメーションのデモ

デモページで画像アニメーション効果をクリックしてください。

2. Canvas 上での画像反転の実装

CSS で要素の反転効果を実現するには、たとえば、特定の画像を水平方向に反転したい場合、必要なのは 1 行だけです。 CSS の場合:

img {
    transform: scaleX(-1);
}
ログイン後にコピー

または:

img {
    transform: scale(-1, 1);
}
ログイン後にコピー

しかし、キャンバスでは、反転できないことが問題なのではなく、座標系の位置が問題になります。

Canvas では、次のコードでリソースの水平ミラー反転を実現できます (コンテキストが Canvas の 2D コンテキストであると仮定します):

context.scale(-1, 1);
ログイン後にコピー

または、直接行列変換に setTransform API を使用します:

context.setTransform(-1, 0, 0, 1, 0, 0);
ログイン後にコピー

ただし、反転は実装されていますが、キャンバス内の要素 配置には大きな問題があります。これは、Canvas の座標変換システムが CSS の座標変換システムとは異なるためです。そのため、中央反転効果を実現したい場合は、反転する前に対象要素の中心点を変換軸に移動する必要があります。

水平方向の反転距離を取得し、ディスプレイスメント変換後のスケーリング前に水平方向のオフセットを変換すると、中心反転の効果がわかります。

言葉が薄いので写真を見せます。

キャンバスのデフォルトの変更座標系は左上隅です。

したがって、水平スケールが 1、0.5、0、-0.5、-1 の場合、最終的な位置は以下のようになります:

その後、オフセットする必要がある水平距離の式を取得できます:

distance = (canvas.width – image.width * scale) / 2;

最終的に、ミラー描画画像のキーコードは次のようになります(水平ズームサイズがスケールであると仮定):

// 坐标参考调整
context.translate((canvas.width - image.width * scale) / 2, 0);
context.scale(scale, 1);
context.drawImage(image, 0, 0);
// 坐标参考还原
context.setTransform(1, 0, 0, 1, 0, 0);
ログイン後にコピー

アニメーション効果を高めるにはどうすればよいですか?

Tween.js (https://github.com/zhangxinxu/tween) を使用できます

それにはさまざまなイージング アルゴリズムがあり、便利な Math.animation() メソッドの助けを借りて、効果を簡単に実現できますラが欲しい!

Math.animation(form, to, duration, easing, callback);
ログイン後にコピー

アニメーション JS は次のとおりです:

var canvas = document.querySelector('canvas');
var context = canvas.getContext('2d');
// 动画进行
Math.animation(1, -1, 600, 'Quad.easeInOut', function (value, isEnding) {
    // 清除画布内容
    context.clearRect(0, 0, canvas.width, canvas.height);
    // 调整坐标
    context.translate((canvas.width - canvas.width * value) / 2, 0);
    // 调整缩放
    context.scale(value, 1);
    // 绘制此时图片
    context.drawImage(eleImg, 0, 0);
    // 坐标参考还原
    context.setTransform(1, 0, 0, 1, 0, 0);
});
ログイン後にコピー

3. 結論

また、Canvas のフロントエンド ユーザーは少なく、その読者は人気があるほどではありません。テクノロジー。しかし、古いことわざにあるように、無視するには小さすぎる善行はありません。将来、関連する問題を探すときに友人が助けてくれることを願っています。

上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

html5 は、canvas を使用して二次ツリー構造図を描画します

canvas は、さまざまな基本グラフィックを描画します

Canvas を使用して、Baidu Tieba クライアントが小さなボールをロードする方法を模倣します

以上が要素画像のミラー反転アニメーション効果をキャンバスに実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

キャンバスを使用している学校はどこですか? キャンバスを使用している学校はどこですか? Aug 18, 2023 pm 05:59 PM

Canvas を使用している学校には、スタンフォード大学、MIT、コロンビア大学、カリフォルニア大学バークレー校などが含まれます。詳細な紹介: 1. スタンフォード大学は、主要なオンライン学習プラットフォームとして Canvas を使用しています。スタンフォード大学の教師と学生は、Canvas を使用してコースの内容を管理および伝達し、オンライン ディスカッション、課題の提出、試験などの機能を通じて学習します。2. マ州Polytechnic Institute と MIT もオンライン学習管理システムとして Canvas を使用しており、Canvas プラットフォームを通じてコース管理を行っています。3. コロンビア大学など。

キャンバス矢印プラグインとは何ですか? キャンバス矢印プラグインとは何ですか? Aug 21, 2023 pm 02:14 PM

キャンバス矢印プラグインには、1. シンプルで使いやすい API を備え、カスタムの矢印効果を作成できる Fabric.js、2. 矢印を描画する機能を提供し、さまざまな矢印を作成できる Konva.js が含まれます。スタイル; 3. 豊富なグラフィックス処理機能を提供し、さまざまな矢印効果を実現できる Pixi.js; 4. 矢印のスタイルやアニメーションを簡単に作成および制御できる Two.js; 5. さまざまな矢印効果を作成できる Arrow.js ; 6. 大まかな.jsでは、手描きの矢印などが作成できます。

キャンバスクロックの詳細は何ですか? キャンバスクロックの詳細は何ですか? Aug 21, 2023 pm 05:07 PM

キャンバス時計の詳細には、時計の外観、目盛り、デジタル時計、時針、分針、秒針、中心点、アニメーション効果、その他のスタイルなどが含まれます。詳細な紹介: 1. 時計の外観、キャンバスを使用して時計の外観として円形の文字盤を描画し、文字盤のサイズ、色、境界線などのスタイルを設定できます; 2. 目盛り線、目盛り線を描画します。位置; 3. デジタル時計、現在の時と分を示すために文字盤にデジタル時計を描くことができます; 4. 時針、分針、秒針など。

html2canvas にはどのようなバージョンがありますか? html2canvas にはどのようなバージョンがありますか? Aug 22, 2023 pm 05:58 PM

html2canvas のバージョンには、html2canvas v0.x、html2canvas v1.x などが含まれます。詳細な紹介: 1. html2canvas v0.x (html2canvas の初期バージョン) 最新の安定バージョンは v0.5.0-alpha1 です。これは、多くのプロジェクトで広く使用され、検証されている成熟したバージョンです。2. html2canvas v1.x、これは html2canvas の新しいバージョンです。

キャンバス フレームワークを学び、一般的に使用されるキャンバス フレームワークについて詳しく説明します キャンバス フレームワークを学び、一般的に使用されるキャンバス フレームワークについて詳しく説明します Jan 17, 2024 am 11:03 AM

Canvas フレームワークを探索する: 一般的に使用される Canvas フレームワークを理解するには、特定のコード例が必要です。 はじめに: Canvas は HTML5 で提供される描画 API であり、これを通じて豊富なグラフィックスやアニメーション効果を実現できます。描画の効率と利便性を向上させるために、多くの開発者がさまざまな Canvas フレームワークを開発しました。この記事では、一般的に使用される Canvas フレームワークをいくつか紹介し、読者がこれらのフレームワークの使用方法をより深く理解できるように、具体的なコード例を示します。 1.EaselJSフレームワークEa

uniapp は、キャンバスを使用してチャートやアニメーション効果を描画する方法を実装します。 uniapp は、キャンバスを使用してチャートやアニメーション効果を描画する方法を実装します。 Oct 18, 2023 am 10:42 AM

キャンバスを使用して uniapp でチャートやアニメーション効果を描画する方法には、特定のコード例が必要です。 1. はじめに モバイル デバイスの普及に伴い、モバイル端末上でさまざまなチャートやアニメーション効果を表示する必要があるアプリケーションがますます増えています。 uniapp は、Vue.js に基づくクロスプラットフォーム開発フレームワークとして、キャンバスを使用してチャートやアニメーション効果を描画する機能を提供します。この記事では、uniapp がキャンバスを使用してチャートやアニメーション効果を実現する方法を紹介し、具体的なコード例を示します。 2.キャンバス

tkinter Canvas にはどのようなプロパティがありますか? tkinter Canvas にはどのようなプロパティがありますか? Aug 21, 2023 pm 05:46 PM

tkinter Canvas 属性には、bg、bd、relief、width、height、cursor、highlightbackground、highlightcolor、highlightthickness、insertbackground、insertwidth、selectbackground、selectforeground、xscrollcommand 属性などが含まれます。詳しい紹介

Meitu Xiuxiu をミラー反転するにはどうすればよいですか? Meitu Xiu Xiuのミラーフリップ画像チュートリアル! Meitu Xiuxiu をミラー反転するにはどうすればよいですか? Meitu Xiu Xiuのミラーフリップ画像チュートリアル! Mar 15, 2024 pm 10:00 PM

1. 美しい写真 Xiuxiu をミラー反転するにはどうすればよいですか? Meitu Xiu Xiuのミラーフリップ画像チュートリアル! 1. まず、このサイトから Android 版の MeituXiuXiu をダウンロードしてインストールします。 MeituXiuXiu Android バージョン カテゴリ: 写真と美化 MeituXiuXiu Android バージョンをダウンロードする MeituXiuXiu Android バージョンは、別の写真に切り抜きを配置したり、透かしを削除したり、写真の背景色の変更、トリミング、回転など、豊富な写真美化ツールを提供する人気の画像処理および美化ソフトウェアです。 、露出、彩度などの操作を調整したり、さまざまなフィルターや特殊効果を調整したりできます。 Meitu Xiu Xiu Android アプリをダウンロードすると、ユーザーはさまざまなファッショナブルなアクセサリーやステッカーを自由に追加して、写真に創造的な要素や面白さを加えることができます。 2. MeituXiuXiu アプリを開いた後、画像美化機能をクリックします。 3. 下のツールバーの「編集」オプションをクリックします。 4.最後に回転中の水をクリックします

See all articles