ウェブDeBLOG|トライデントコンピュータ専門学校 Webデザイン学科

トライデントコンピュータ専門学校 Webデザイン学科の最新情報を紹介しています。学生へのインタビュー記事から学生作品の解説、Webデザイン・マークアップ・プログラミングの授業風景、プロジェクト発表会、名古屋のWeb制作会社情報、イベント参加レポートやWeb制作の技術解説などWeb制作に関連する記事を掲載しています。トライデントコンピュータ専門学校は、いま話題の名古屋駅からユニモール地下街を歩いて3分です。 

2015.04.18 [土] canvas要素でパーティクル vol.2

最終更新:2018.08.17Webサイト制作Tips

前の記事「canvas要素でパーティクル vol.1」の続きです。

ここまでで、四角い粒子が散らばっている動きができています。


index-4.jpg

現在、画面上には変数particleNumに設定されている100個の粒子が表示されており、100以上はでないようにfor文で設定されています。

for (var i = 0; i < particleNum; i++){
    new Particle();
 }

これを一度に100個出るように、setIntarvalに入れると、どばどば〜と粒子が湧き出るように表示されます。

canvas006.jpg

数が多すぎるので、変数particleNumの数値を調整します。10〜20ぐらいでしょうか。
1割ぐらいの粒子の動きが変わるようにMath.randomで設定をします。さらに粒子の透明度も変更します。

- - - - - - - - -
Particle.prototype.draw = function(){
    this.x += this.vx;
    this.y += this.vy;
          
→ if (Math.random() < 0.1){
    this.vx = Math.random() *10 -5;
    this.vy = Math.random() *10 -5;
    }
          
    this.life++;
    if(this.life >= this.maxLife){
    delete particles[this.id];
    }
→ context.fillStyle = "rgba( 255, 255, 255, 0.5)";
    context.fillRect(this.x, this.y, 10, 10);
    };
- - - - - - - - -

さらに、色もランダムに変わるようにします。

context.fillStyle = "hsla("+parseInt(Math.random()*360, 10)+",100%,50%, 0.2)";

前回も書きましたが、白い粒子が表示される毎に全体を黒く塗りつぶすことでアニメーションしているように見せているのですが、この黒に透明度を加えると、都度、不透明度が濃くなり残像が残るようなアニメーションになります。

- - - - - - - - -
setInterval(function(){
→ context.fillStyle = "rgba( 0, 0, 0, 0.1)";
    context.fillRect(0, 0, canvas.width, canvas.height);
          
    for (var i = 0; i < particleNum; i++){
    new Particle();
}
- - - - - - - - -

globalCompositeOperationを使って"source-over"(普通の重なり)から、"lighter"(色を加算)したものへ変化させることにより、中心が光で眩い感じをだしています。

- - - - - - - - -
setInterval(function(){
→ context.globalCompositeOperation = "source-over";
    context.fillStyle = "rgba(0, 0, 0, 0.5)";
    context.fillRect(0, 0, canvas.width, canvas.height);
    for (var i = 0; i < particleNum; i++){
    new Particle();
    }
→ context.globalCompositeOperation = "lighter";
    for ( var i in particles){
    particles[i].draw();
    }
}, 30);
- - - - - - - - -
canvas008.jpg

とりあえず、動く粒子の集合体ができあがりました。次回は、これにインタラクティブな動きを入れていきたいと思います。

Tag : canvas particle

2015.04.16 [木] canvas要素でパーティクル vol.1

最終更新:2018.08.17Webサイト制作Tips

勉強会に参加するために、初めてcanvasでパーティクルの作り方を調べました。自分でも理解しながら制作していきましたので、備忘録として、こちらに書いておきます。

まず、パーティクルとは、

自然界に存在する複雑で不規則な形状をしている火、煙、雲、霧、草、髪などを表現するために考案された。このようなポリゴンや曲面だけでは表現し切れない形状を、微小な粒子の集まりとして記述し、それが動き回る様を確率モデルとして処理する。
http://yougo.ascii.jp/caltar/パーティクル|ASCII デジタル用語辞典

canvas要素とは、

HTML の canvas 要素 (<canvas>) は、スクリプティング(基本的には JavaScript)によりグラフィックを描画する事ができます。 たとえば、グラフの描画、写真の合成、更にはアニメーションの作成までが可能です。<canvas>のブロック内で、代替コンテンツを提供することが可能 (また、提供すべき) です。その内容物は、canvas をサポートしない古いブラウザおよび JavaScript が無効であるブラウザで描画されます。
canvas 要素 - HTML | MDN
htmlを用意します。
<!doctype html>
    <html lang="ja">
    <head>
        
        canvasでparticle
    <script>
        ----------
    </script>
    
    </head>
<body>
</body>
    </html>

body内にcanvas要素をあらかじめ書いておいても良いですが、script内にcanvas要素をJavaScriptで書いて、変数canvasに入れてサイズを設定します。今回は400pxの正方形にしておきます。


そして、canvas要素を利用するための、お約束getContextメソッド、fillRect(x, y, w, h) メソッドをdocument.body.appendChild(canvas);の後に書きます。
fillStyle を使って、指定の矩形領域を塗りつぶします。高さか幅のいずれかが 0 なら、このメソッドは何も作用しません。


400pxの正方形が黒く塗りつぶされると思います。
その正方形の上に、パーティクル(粒子)のパーツを乗せていきます。とりあえず半分の大きさにします。


白いcanvas要素をsetIntervalを使って大きくしていきます。


徐々に大きくなってきます。

index-1.jpg

fillRectメソッド内の引き数でposX, posYが大きさの数値に設定されているので、位置部分に換えて、パーティクルのサイズを10pxで固定します。

context.fillRect(posX, posY, 10, 10,);

このままだとずっと白いcanvas要素が書き続けてしまうので、黒いcanvasで1回毎に塗り直します。


canvas005.jpg

posX, posYに加える数値を変数vx, vyにして、移動する方向を編集しやすくします。
さらに、posYの位置が300を越えた場合、動きが小さくなるように0.5を掛けて、さらに-(マイナス)の値にすることで逆方向へ動かします。
またposYが300を越えれば小さく、逆に動いていき、最後には止まります(実際には止まっていないけど、動きが小さすぎて止まって見える)。


index-2.jpg

関数Particleにして、Math.random()で不規則な方向に動くようにします。

index-3.jpg

粒子をたくさん作るために、配列を作ります。

var particles = {},
particleIndex = 0;

関数particleの中に

particleIndex++;
particles[particleIndex] = this;
this.id = particleIndex;

と入れることで、繰り返される毎に配列に粒子が格納されます。
スピードや数、消える位置を設定すると、花火のようなアニメーションができ上がります。

index-4.jpg

後半、駆け足になってしまいましたが、この続きはvol2で書きます。
この後に数を増やし、動きをランダムにして、色と透明度などを変更するとそれっぽくなります。

Tag : canvas particle
検索フォーム
プロフィール

担当:Webデザイン学科

名古屋駅から歩いて6分、トライデントコンピュータ専門学校のWebデザイン学科を紹介します。

トライデントロゴ

質問などはLINEでどうぞ。

Instagram
Webデザイン学科実績
<プレゼン>
WCAN 2016 Springに参加してきました。
WCAN 2015 Winterに参加しました。
建設業入職者増加プロジェクトの発表会に参加
WCAN 2015 Summerに参加してきました。
WCAN 2013 Winterに参加
WCAN(秋)に参加しました。
無事、発表が終わりました【WordFes Nagoya 2013】
WCAN 2013 Summerに参加してきました。
WCAN 2011 Winter LT&LOGO
学生がライトニングトークで話しました。
<展示会>
1年生進級展2018「線の群生」終了しました。
1年生進級展「WWW(Welcome to Web World)」を開催しました。
1年生進級展「お母さんの2度見展」を開催中です。
「うぇ~~~~~~~ぶ2016」終了しました。ご来場ありがとうございました!
「うぇ〜〜〜〜〜ぶ!!」終了。ご来場ありがとうございました!
<コンテスト>
「第1回 専門学校 HTML5作品アワード」技術賞を受賞しました!
NCF2017でグランプリを受賞しました!
信州アプリコンテスト0 [ゼロ] KDDI賞受賞!
NCF2014(スマホアプリ開発テーマ2) 準グランプリ獲得!
最優秀賞!HTML5スマートアプリ&クリエイティブコンテスト
NCF2013グランプリ受賞!!!
<Webサイト制作>
ミス・ユニバース・ジャパン岐阜大会公式Webサイトを作成しました。
建設業入職者増加プロジェクト発表会
Webサイト制作発表会2014
99eagle Webサイトリニューアル公開
99eagle Webサイト公開
「Bloom*Block」Webサイト公開
セントレア「日本の四季 キルト展」Webサイト公開
かっぱ商店街サイト制作
ココストア共同企画「アサココ!」公開
<技能五輪全国大会>
第56回技能五輪全国大会(ウェブデザイン職種)敢闘賞受賞!
第53回技能五輪全国大会(ウェブデザイン職種)その3
第52回技能五輪全国大会が開催されました。
銀メダル・銅メダル獲得【第51回技能五輪全国大会】
第49回技能五輪全国大会結果発表 敢闘賞受賞
第48回技能五輪全国大会結果発表(銀賞・敢闘賞受賞)
第47回技能五輪閉会式 & 結果発表
第46回技能五輪
<若年者ものづくり競技大会>
第11回若年者ものづくり競技大会 2日目&結果
第9回若年者ものづくり競技大会2日目(競技日)
第8回若年者ものづくり競技大会2日目
第7回若年者ものづくり大会
第6回若年者ものづくり大会2日目
第5回若年者ものづくり大会
第4回若年者ものづくり競技大会閉会式
月別アーカイブ
タグリスト 改

トライデントコンピュータ専門学校Webデザイン学科業界研究WCAN技能五輪ウェブデザイン職種ウェブデザインWebサイト若年者ものづくり競技大会2013映画名古屋ECCコンピュータ専門学校ポートフォリオWebデザイン学生ブログWinter2009Webサイト制作2011JavaScriptWordPress1年生進級展技能五輪全国大会かっぱ商店街礒田優入学式オープンキャンパス2014a-blogcmsWordpressライトニングトーク卒業制作展NagoyaWeb矢野りんアクアリング体験入学卒展合同企業展面白法人カヤック瀬川大勝テンプレート作成AutumnCSS石黒雄介Summer卒業制作CGイラスト学科アクセス解析Web制作会社ホームページ・ビルダー若年者ものづくり大会学生インタビューHCD第48回技能五輪全国大会html5inFlashあいちカレーラーメンコンテストウェブデザイン技能競技会GIO大阪杉本拓也2015IIJウェブデザイン技能競技大会HTML5mini2012Japan名古屋駅ココストア東京研修佐藤歩2010Adobe北濱大輔サイバーエージェントCentOS制作合宿GoogleWebデザインギャラリーWebワークショップ2018マールjQueryウェブデザイン技能検定gifアニメSpring水野裕太人間中心設計閉館日上村水月企業訪問学生Webクリエイター能力認定試験ラーメンdisplay:gridグリッドレイアウトGridLayout愛知県BananaAd情報デザインプロジェクトセントレア田中睦翔成田篤紀プレゼンテーション専門学校99eagleCOMMUNICATION情報デザインフォーラムCSS3NEXTブログパーツselect要素長屋めぐみモンキーワークスNTTドコモ東海output要素SEOiPhoneoption要素Yahoo!Japan空気人形幕張メッセ熊谷佳紀林田実樹フロントエンドエンジニアマークアップエンジニアうぇーぶ1年生作品展スマホアプリまぼろしparticle謹賀新年結果発表初期設定スマートフォン塚本碧岩手県Analytics真鍋大度アンティー・ファクトリーCSSNiteLike作品集WordFesウェブアクセシビリティレイアウトBoxFICC静岡会社訪問就職活動卒業式メ~テレビジュアルエディタPlugin堀尾真衣ポートフォリオサイト産学協同阿部淳也コミュニケーションデザインワークショップ名古屋市科学館5T(ファイヴティー)Advent写真カメラたこ焼きトライデント合同企業展笈瀬本通りform要素label要素ワークショップinput要素愛知県選手団legend要素fieldset要素イラストマップトライデント知多みるくAWARD戸田芳裕和みCalendarナゴヤドーム中日ドラゴンズUXForum名商連WEBサイト制作者のためのHCDの理解in名古屋カリキュラムtextarea要素canvasトライデント祭り夏季閉館日夏休み沖縄F-site信州アプリコンテスト[ゼロ]Apple鈴木優太フォトアルバムjbstyleWebデザイナー茂森仙直RunstantMarkup企業課題名古屋開府400年祭アプリコンテストStoreアサココ!ディプロス学習Webリテラシー出張講座DTPWORLD情報デザイン基礎進級展2017ドラマ久保怜也豊田市美術館株式会社LIG水野怜美WordCamp導入授業鷹野雅弘グループ制作サーティファイCMS20081→10designシナリオCONTEST中村勇吾細川太郎ペルソナタロヲTHE金シャチ商店街名古屋メディアボンド中部国際空港GAINAX佐藤可士和商店街SUBARU広島弁CollegeNightAndrioidWEBサイト制作者のためのHCD(人間中心設計)の理解名古屋グランパスチタハン10デザインコンテストキルターズフェスティバル2011柴乃櫂人アクセシビリティITCIRCUSSakae放課後のプレアデス01iPhone4YORKE.HTML+CSS基礎unoplus造形基礎円JOY!mapDesignデッサンActionScript基礎プレゼン演習西村真里子WCAN×CSSNiteカンファレンス知多半島松坂屋美術館スタジオジブリ・レイアウト展技能五輪予選WEBサイト制作者のためのHCDの理解日本の四季伊藤頼子ビジュアルデベロップメントWEBIAFLEXプロトコル分析TEXTURE愛知県立芸術大学卒業・修了制作展ウェブデザイン部門キルト展サムライCS4サーバーFLASHCODEポスターデザイン・コンペティションLoad小林信次2008WinterWebDirectionEast'08ブラザー工業株式会社中部国際空港株式会社増田悟XRAY中級編HPデザインVideopuppetryASIASIGGRAPH名古屋サイト改善研究会株式会社アクアリングデザインのへそNamArtlessLazy丹下紘希横浜デジタルアーツ大西健太QubibiGoogleAnalyticsSagmeisterHelveticaStefanカメラワークW+KTokyo(+CRUZ)石井研二名駅経済新聞名チャリポスターデザイン・コンペディションX8341-3:2010デザイナーのためのプログラミング入門グラフィクデザインTwitterPHPFLVFLAVER3.0笈瀬本通笈瀬本通商店街名古屋クリエイターフットサルCODE名古屋市中村区MAXみの治商店三蔵forアンドリュー・ワイエス愛知商業高校デザイン鳥取鳥取砂丘GAUltimateウェブリテラシー協会JISプチ・フレーズSlimbox2愛知県美術館商店サイト制作田中稚妃呂大沢たかおFlash-Gameswonderfl西田幸司ゆるキャラ国家検定インターネットスキル認定普及協会映画のオープニング閉会式Kyotoヱヴァンゲリヲン新劇場版:破ブランディング旭食品サンプル製作所AutuminHCDプロセス食品サンプルdotFesActionScriptライブペイントマクロマリオネット小野裕子#infoedu教育勉強会コピーライティングCALENDAR山崎デザイン事務所UNIQLOロゴ公募FITC黒い太陽ごはんとFlashマークアップ演習ウルトラ展ヤノベケンジカスタマイズセミナーCREAM学科カラーLPO今井佳子第4回アックゼロヨン・アワードギレン総帥アイディグラフィックス学生参加UNIQLOCKCG・イラストコンテストモーション演習ガンダム入賞Mozoramaグラフィックデザインアニメーションanimationescalatorナゴヤデザインウィーク2009CMS特集Yahoo!世界のCMフェスティバルITホワイトボックスカナバングラフィックスJAPANインターネットクリエイティブアワードストリートビュー富岡聡ウサビッチPHP勉強会人喰いの大鷲トリコソバットシアター是枝裕和監督東京ゲームショウ2009コマ撮りアニメ大富豪スコアシート電信柱エレミの恋荒俣宏スーパーエレメンツTokyoLabuatUTZOOMWCAN46TAFF武将都市名古屋おもてなし武将隊武豊アニメーションフェスティバル福みつ餃子IA2010キックオフセミナー夢プロジェクト2009・成果報告会ウェブリテラシー協会第一回セミナーワークスコーポレーション「ヤノベケンジ-ウルトラ」展浜松BlogナゴヤCOMPLETEアートアニメーションFINALフナ犬ポートピア名古屋プロ野球TAFF'09武豊町FANTASYVII道頓堀ADVENTCHILDREN新世界求人ネスカフェゴールドブレンド後期SalsaWas□□□switchペルソナ/シナリオ法情報デザイン教育勉強会山村浩二おかだよういち浅野智デコクレウェブDeBLOGヨウイチ音楽長谷川恭久ファルコム音楽フリー宣言ゲームデュエル・マスターズイラストコンテスト日本ファルコムセキュリティペルソナ&シナリオ法慶華飯店新横浜ラーメン博物館横浜中華街NIKEAndThereThen箱根合宿森川眞行GENOウィルス3校合同発表会クリ博就職フェスタ横浜デジタルアーツ専門学校日本電子専門学校会社見学鎌倉広告批評StationPlunkerJSFiddleJSBinCodePenCodeplyjsdo.itIndependenceクイズ駅麺通り涼麺プログラムクイズAO入試制作実績津田直明2016原一浩坂本貴史平野秀幸河地芳明沼田啓助カークスヴィルIA/UXプラクティスDay:ResurgenceInstagramインスタグラム醐りょう料理芸大appendChild()HTMLCollectionNodeList美大いな世驛麺通り日清食品グループタカガールサイト水曜日のカンパネラプラネタリアンジムナストコロン学生作品集再進学学園祭情報系Monaca坂本邦夫Webプログラマー岡田陽一FlexibleBoxFlexbox味仙Dmm.comUXデザインPlatformKaizenアクティビティシナリオ源賢司CGスペシャリスト松田洋樹建設経営者倶楽部アクセシビリティからはじめる、WebサイトのUXデザイWebアクセシビリティVelocity.jsワクワク建設タウン第53回3DCG東京コスモクリスマス熊﨑彩グロースハックグロースハッカー専門士学位出席率職業実践専門課程合同制作合宿合同制作WebディレクターWeb制作のおしごと懇親会合宿レスポンシブWebデザインウェブアートデザイナーポートフォリオアイデア帳採用担当者の心に響く高校14平野健太郎バイドゥうぇ~~~~~~~ぶワイヤーフレーム仕事UIWebプログラミング初級講座マイクロソフトpicture沖縄県第56回GOsourcesrcsetcymaEC事業エイチーム第56回技能五輪全国大会OculusVRカルタ藤井英一JIHYEHEOホ・ジヘイークリエイト冨田伴成東京ゲームショウ2018出前授業青山高校新城高校斉藤洸貴NextDoor企業見学株式会社MTG日本総合ビジネス専門学校2020新卒新入生オリエンテーションわたし、定時に帰ります。STUDIOLIGCBCTBS線の群生Figma平成31年メーカー・ブランドコーヒー用品前川元成あけおめ株式会社サイバーエージェントツールUIデザイン牧野史門桝田草一韓国脆弱性なんと読む?株式会社エイチーム山川綾那鈴木雄太スタジオディテイルズ梅澤朝樹衣台高校スクラップブック夏休みの課題ノートPC貸与尾鷲高校服部友厚佐藤洋介ES2015ES6ECMAScriptお母さんの二度見展SyntaxHighlighterv4.0.1ターミナル学校ProxyWCAN2017SpringD3.js出身高校友章堀川志維安藤WWW(Welcometo期末テストWebデザインスペシャルデー北川パーヤンWorld)WebアプリNCF2017ofTableTOCAWARDSContents安藤志維ミス・ユニバース・ジャパン岐阜大会フォントおじさん関口浩之堀川友章ScrollMagicScrollmagic結果長野IllustratorSVG第50回JQueryWeb制作合宿Muse画像をチェックボタンにする張山大祐Facebookページベースキャンプ名古屋Bloom*BlockBloosumTeamイマジンカップ尾花大輔第7回若年者ものづくり競技大会SHOWGAMETOKYO東京ゲームショウ2012たこ焼きパーティFacebookそこにいない。展PARTYPerfumebyあいちトリエンナーレ2013Webデザイン演習さかなや晴れやか嵐が如く第51回技能五輪全国大会inspiredRhizomatiks東京佐藤ねじみんなのICTモリサワ就職木下健太郎田代豊たにぐちまことプレゼンThree.jsNHN髙橋茜音バルサマン3JAPANWORLDCUPMagnumプロジェクションマッピング恵那市岩村DRAGONドラゴンゲート愛知淑徳大学みつけもの北岡弘至伊達千代卒業制作・研究発表会2011ぬいぐるみのラパンKtaistyleCustomSmilies英国王のスピーチUntitled!!!!!!!!DTPの勉強部屋ablogcmsトライデントカレッジGATEゴールデンウィークツインメッセ静岡静岡県ロゴマークメールマガジン敢闘賞迎春Futuredocomoドコモ2011年度Ohanaゲーム大賞アマチュア部門ライアン・ウッドワードマーサ・グレアム5月11日Googleロゴプラネタリウム鈴木東京ゲームショウ神戸神戸国際展示場フジ家55麺屋ココイチアイテムカンパニーネイルサロンマウア授業アイチータ紅茶専門店Liyn-antype属性button要素datalist要素keygen要素optgroup要素結団式青山敬司青空学区名古屋市営地下鉄柏木祥太スパルタキャンプ特別授業AO山田拓生加藤ひとみ西岡克真AnimationHTML第52回技能五輪全国大会森田霞HighlighterSyntaxCrayonアップルップル木村哲朗八木智章竹中民男夏麺フェア飯田淳介2015年度新入生新年のご挨拶親孝行麺の匠オリエンタルNCF2014名古屋駅麺通りWF1でBLOGインターンシップスマートフォンサイトUI図鑑CSS3&jQueryで作る岩出本店丸田屋卒業研究制作展最優秀賞ジョルテKDDI10日でおぼえるLinuxサーバー入門教室トライデント合同企業説明会DesignergoogleGWDF81教室HTML5スマートアプリ&クリエイティブコンテストモテ声ボーダー芸術大学高橋雅人カレーラーメン麺やOK美術大学NCF2013list-itemdisplaylist-style-typeNTTドコモ東海支社parseInt()parseFloat()本州最南端串本八鬼山熊野古道那智の大滝大門坂丸高アロチ本家和歌山中華そば熊野三山マカベン名古屋マークアップ勉強会道家陽介concrete5栗山聡一備忘録中村健太ランチtableテーブル宇野剛志石原愛実絵文字

メールフォーム

名前:
メールアドレス:
件名:
本文:

東京コスモ
トライデントコンピュータ専門学校
教務課のびのび日記
Pagetop