検索
ホームページCMS チュートリアル&#&プレスPaper.js 入門: アニメーションと画像

Paper.js 入門: アニメーションと画像

Sep 03, 2023 am 09:05 AM
スタートガイドpaperjsアニメーションと画像

このシリーズではこれまで、Paper.js でのアイテムとアイテム、パスとジオメトリ、およびユーザー インタラクションについて説明してきました。このライブラリを使用すると、プロジェクト内のさまざまなアイテムをアニメーション化することもできます。これをユーザー入力に基づいて動作する機能と組み合わせると、非常に優れたエフェクトを作成できます。このチュートリアルでは、Paper.js でアイテムをアニメーション化する方法を説明します。

このチュートリアルの後半では、画像処理と個々のピクセルの色を操作する方法についても説明します。このライブラリでは、ベクターからラスターを作成することもできます。これについては最後に説明します。

アニメーションの基礎知識

Paper.js のすべてのアニメーションは、onFrame イベント ハンドラーによって処理されます。ハンドラー内のコードは 1 秒あたり最大 60 回実行されます。ビューは実行のたびに自動的に再描画されます。関数内のいくつかのプロパティを徐々に変更すると、非常に素晴らしい効果が得られることがあります。

onFrame ハンドラーは event オブジェクトも受け取ります。このオブジェクトには、アニメーション関連の情報を提供する 3 つのプロパティがあります。

最初の値は event.count で、ハンドラーが実行された回数を示します。 2 つ目は event.delta で、ハンドラーが最後に実行されてから経過した合計時間を示します。 3 番目は event.time で、最初のフレーム イベントからの経過時間を示します。

ハンドラーでは多くのプロパティをアニメーション化できます。この例では、3 つの長方形を回転し、中央の長方形の色合いを変更します。次のコードを考えてみましょう:

リーリー

上記のコード スニペットから明らかなように、長方形をアニメーション化するために必要な実際のコードはほとんどありません。四角形 A では、onFrame ハンドラーが実行されるたびに、色合いを 10 event.delta 倍に増やします。 event.delta の値は通常、0.01 に近いです。値を 10 倍にしていなかったら、色の変化に気づくまでに長い時間がかかっていたでしょう。

コードを実行するたびに、各四角形を 2 度回転します。値 event.time を使用して四角形を回転すると、しばらくすると回転が非常に速くなります。

#パス全体または項目を一度にアニメーション化するのではなく、個々のフラグメントをアニメーション化することもできます。プロセス自体は非常に簡単です。 path.segments を使用すると、パスを構成するすべてのセグメントの配列を返すことができます。個々のセグメントには、index 値を指定することでアクセスできます。先に進む前に、以下のコードを見ていただきたいと思います。

リーリー

ここでは、まず Path. RegularPolygon(center, Sides, radius) コンストラクターを使用して正方形を作成します。 sides このパラメータは、多角形の辺の数を決定します。 radius パラメータはポリゴンのサイズを決定します。また、個々のポイントを確認できるように、completelySelected プロパティを true に設定します。

onFrame ハンドラー内で、for ループを使用してすべてのセグメントを反復処理し、その X 座標をインデックスに基づいて計算された値に設定します。 Math.sin() 関数内で event.time 関数を使用しても、Math.sin() の値は影響を受けないため、極値に関連する問題は発生しません。極端な値に関連する問題。 sin() 関数は常に -1 と 1 の間に位置します。

次のデモは、アニメーション化された正方形を示しています。ちなみに、onFrame ハンドラーのコードのおかげで、これは正方形ではなくなりました。ポリゴン コンストラクターのさまざまな値と sin 関数の引数を試して、デモの最終アニメーションにどのような影響を与えるかを確認することをお勧めします。

画像の基本

Paper.js の画像はラスターと呼ばれます。他のアイテムと同じように変形したり移動したりできます。プロジェクトで画像を使用するには、まず通常の img タグを使用して Web ページのマークアップに画像を追加し、id を割り当てる必要があります。この id は、new Raster(id) コンストラクターに渡されます。

使用している画像はロードする必要があり、プロジェクトと同じ Web サイトでホストされる必要があることに注意してください。他のドメインでホストされているイメージを使用すると、セキュリティ エラーが発生します。このチュートリアルでは、次の画像を操作します:

Paper.js 入門: アニメーションと画像

要访问上图中各个像素的颜色,您可以使用 栅格。 getPixel(x, y) 函数,其中 x 和 y 是像素的坐标。下面的代码生成 7*7 像素的正方形,填充位于左上角的像素的颜色:

var raster = new Raster('landscape');
var gridSize = 8;
var rectSize = 7;

raster.on('load', function() {  
  raster.size = new Size(80, 40);

  for (var y = 0; y < raster.height; y++) {
    for (var x = 0; x < raster.width; x++) {
      
      var color = raster.getPixel(x, y);
      var path = new Path.Rectangle( new Point(x, y) * gridSize, new Size(rectSize, rectSize));

      path.fillColor = color;
    }
  }

  project.activeLayer.position = view.center;
});

加载栅格后,我们将其大小调整为 80*40。像素。在嵌套的 for 循环内,我们遍历该栅格的各个像素并创建 7*7 的正方形。增加栅格的大小会给我们带来更好的结果,但执行速度会更慢。这是最终结果,调整后的光栅在左上角可见:

如果要隐藏调整大小后的栅格,可以将 raster.visible 属性设置为 false。您还可以操纵生成的方块的颜色。例如,要增加所有方块中的红色分量,您可以使用以下行:

path.fillColor = color + new Color(0.4,0,0);

在这种情况下,最终结果将是:

光栅化项目

虽然 Paper.js 是一个矢量图形库,但它还允许您从现有项目创建光栅。为此,您必须使用 item.rasterize() 方法。光栅化后,原始项目本身不会从项目中删除。您还可以选择指定光栅的分辨率(以每英寸像素为单位)。下面的代码以不同的分辨率从多边形创建两个栅格:

var aDodecagon = new Path.RegularPolygon(new Point(150, 180), 12, 30);
aDodecagon.fillColor = '#CCAAFC';
  
var dodecRasterA = aDodecagon.rasterize();
dodecRasterA.position.x += 250;
  
var dodecRasterB = aDodecagon.rasterize(150);
dodecRasterB.position.x += 500;
  
aDodecagon.scale(3);
dodecRasterA.scale(3);
dodecRasterB.scale(3);

与中间的相比,最右边的分辨率更高的多边形仍然很清晰。最终结果如下:

最终想法

如果您已阅读本系列中的所有教程,您应该拥有足够的知识来开始使用 Paper.js。虽然学习该库的基础知识很容易,但掌握所有概念将需要您付出一些努力。每当您需要有关某个主题的更多信息时,您可以浏览官方网站上的参考资料。

JavaScript 已成为事实上的网络工作语言之一。它并非没有学习曲线,而且还有大量的框架和库可以让您忙碌起来。如果您正在寻找其他资源来学习或在工作中使用,请查看我们在 Envato 市场中提供的资源。

如果您使用此库创建了一些有趣的东西,请在评论中分享您的作品。

以上がPaper.js 入門: アニメーションと画像の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
WordPressはeコマースに適していますか?WordPressはeコマースに適していますか?May 13, 2025 am 12:05 AM

はい、WordPressはeコマースに非常に適しています。 1)WooCommerceプラグインを使用すると、WordPressはすぐに完全に機能的なオンラインストアになります。 2)パフォーマンスの最適化とセキュリティに注意し、キャッシュとセキュリティプラグインの定期的な更新と使用が重要です。 3)WordPressは、ユーザーエクスペリエンスを改善し、SEOを大幅に最適化するための豊富なカスタマイズオプションを提供します。

YandexのWebマスターツールにWordPressサイトを追加する方法YandexのWebマスターツールにWordPressサイトを追加する方法May 12, 2025 pm 09:06 PM

あなたのウェブサイトをyandexのウェブマスターツールに接続しますか? Google Search Console、Bing、YandexなどのWebマスターツールは、Webサイトの最適化、トラフィックの監視、robots.txtの管理、Webサイトのエラーの確認などを支援します。この記事では、WordPress WebサイトをYandex Webmasterツールに追加して、検索エンジントラフィックを監視する方法を共有します。 yandexとは何ですか? Yandexは、GoogleとBingに似たロシアに拠点を置く人気のある検索エンジンです。 Yandexで優れています

WordPressのHTTP画像アップロードエラーを修正する方法(シンプル)WordPressのHTTP画像アップロードエラーを修正する方法(シンプル)May 12, 2025 pm 09:03 PM

WordPressでHTTP画像アップロードエラーを修正する必要がありますか?このエラーは、WordPressでコンテンツを作成する場合、特にイライラする可能性があります。これは通常、組み込みのWordPressメディアライブラリを使用して画像またはその他のファイルをCMSにアップロードするときに発生します。この記事では、WordPressのHTTP画像アップロードエラーを簡単に修正する方法を示します。 WordPressメディアのアップロード中にHTTPエラーの理由は何ですか? WordPress Mediaアップローダーを使用してファイルをWOにアップロードしようとするとき

メディアボタンを追加することでWordPressで動作しない場合の問題を修正する方法メディアボタンを追加することでWordPressで動作しない場合の問題を修正する方法May 12, 2025 pm 09:00 PM

最近、読者の1人が、WordPressサイトの追加メディアボタンが突然機能しなくなったと報告しました。この古典的なエディターの問題には、エラーや警告が表示されないため、ユーザーが「メディアの追加」ボタンが機能しない理由を知りません。この記事では、WordPressの追加メディアボタンを簡単に修正する方法を示します。 WordPressの「メディアの追加」ボタンが動作を停止する原因は何ですか?古い古典的なWordPressエディターをまだ使用している場合、メディアの追加ボタンを使用すると、画像、ビデオなどをブログ投稿に挿入できます。

WordPress Cookieを設定、取得、削除する方法(専門家のように)WordPress Cookieを設定、取得、削除する方法(専門家のように)May 12, 2025 pm 08:57 PM

WordPress WebサイトでCookieの使用方法を知りたいですか? Cookieは、ユーザーのブラウザに一時情報を保存するための便利なツールです。この情報を使用して、パーソナライズと行動ターゲティングを通じてユーザーエクスペリエンスを強化できます。この究極のガイドでは、プロフェッショナルのようにWordPressCookiesを設定、取得、削除する方法を紹介します。注:これは高度なチュートリアルです。 HTML、CSS、WordPress Webサイト、PHPに習熟する必要があります。クッキーとは何ですか?ユーザーがWebサイトにアクセスすると、Cookieが作成および保存されます。

WordPress 429を修正する方法要求エラーが多すぎますWordPress 429を修正する方法要求エラーが多すぎますMay 12, 2025 pm 08:54 PM

WordPress Webサイトに「429が多すぎるリクエスト」エラーが表示されますか?このエラーメッセージは、ユーザーがWebサイトのサーバーにHTTPリクエストを送信しすぎていることを意味します。このエラーは、エラーの原因を見つけるのが難しいため、非常にイライラする可能性があります。この記事では、「WordPress429ToomanyRequests」エラーを簡単に修正する方法を示します。 WordPress429のリクエストが多すぎるのは何ですか? 「429toomanyRequests」エラーの最も一般的な原因は、ユーザー、ボット、またはスクリプトがウェブサイトにアクセスしようとすることです

WordPressは大規模なWebサイトのCMSとしてどの程度スケーラブルですか?WordPressは大規模なWebサイトのCMSとしてどの程度スケーラブルですか?May 12, 2025 am 12:08 AM

wordpresscanhandlelargewebsiteswithcarefulningandoptimization.1)usecachingtoreduceServerload.2)optimizeyourdatabaseRegularly.3)rivenceCdntodistributecontent.4)vetpluginsandmestoavoidConflicts.5)

WordPressは本当にカスタマイズ可能ですか?WordPressは本当にカスタマイズ可能ですか?May 11, 2025 am 12:11 AM

WordPressは非常にカスタマイズされており、幅広い柔軟性とカスタマイズ可能性を提供します。 1)テーマとプラグインのエコシステムを通じて、2)Restapiをフロントエンド開発に使用する、3)詳細なコードレベルの変更、ユーザーは高度にパーソナライズされたエクスペリエンスを達成できます。ただし、カスタマイズには、PHP、JavaScript、CSSなどのマスタリングテクノロジーが必要であり、潜在的な問題を回避するために、パフォーマンスの最適化とプラグインの選択に注意を払います。

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境