ウェブ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
検索フォーム
#NoHeartNoSNS

ハートがなけりゃSNSじゃない!

プロフィール

担当: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」終了しました。ご来場ありがとうございました!
「うぇ〜〜〜〜〜ぶ!!」終了。ご来場ありがとうございました!
<コンテスト>
信州アプリコンテスト0 [ゼロ] 2019 KDDI賞受賞!
第5回 ソレコン☆ポスコン特別賞受賞
「第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回技能五輪
<若年者ものづくり競技大会>
第14回若年者ものづくり競技大会
第11回若年者ものづくり競技大会 2日目&結果
第9回若年者ものづくり競技大会2日目(競技日)
第8回若年者ものづくり競技大会2日目
第7回若年者ものづくり大会
第6回若年者ものづくり大会2日目
第5回若年者ものづくり大会
第4回若年者ものづくり競技大会閉会式
月別アーカイブ
タグリスト 改

トライデントコンピュータ専門学校Webデザイン学科業界研究WCAN技能五輪ウェブデザイン職種ウェブデザインWebサイト若年者ものづくり競技大会ポートフォリオ2013映画名古屋ECCコンピュータ専門学校学生ブログWebデザイン1年生進級展2009WinterJavaScriptWebサイト制作技能五輪全国大会2011WordPress卒業制作展オープンキャンパスかっぱ商店街礒田優入学式アクアリングWordpressNagoyaライトニングトーク卒展アクセス解析Web2014a-blogcms矢野りん合同企業展ホームページ・ビルダー面白法人カヤックWeb制作会社卒業制作CGイラスト学科石黒雄介テンプレート作成瀬川大勝AutumnSummer若年者ものづくり大会体験入学CSS杉本拓也第48回技能五輪全国大会ウェブデザイン技能競技会名古屋駅あいちカレーラーメンコンテスト2015夏季閉館日学生インタビューFlash夏休み佐藤歩miniウェブデザイン技能競技大会inHTML5HCDIIJ2010AdobeJapanhtml5GIO閉館日大阪プレゼンテーション2012ココストア東京研修ブログパーツ北濱大輔Webワークショップ企業訪問就職活動セントレアトライデント祭りウェブデザイン技能検定情報デザインSpring専門学校愛知県gifアニメWebクリエイター能力認定試験99eagle林田実樹人間中心設計水野裕太制作合宿プロジェクト学生GoogleフォトアルバムCentOS上村水月WebデザインギャラリーCSS3jQueryGridLayoutサイバーエージェント成田篤紀マール情報デザインフォーラムラーメンNEXT田中睦翔display:gridUX2018COMMUNICATIONBananaAdグリッドレイアウトモンキーワークス飯田淳介和みiPhoneYahoo!JapanWebデザイナーワークショップ幕張メッセ空気人形Forumドラマフロントエンドエンジニア水野怜美ウェブDeBLOG産学協同謹賀新年WordFes株式会社LIGアップルップル5T(ファイヴティー)canvasサーティファイRunstantマークアップエンジニア結果発表スマートフォンCMSカリキュラムAdvent沖縄SEOAnalyticsカメラCSSNiteAWARDCalendar写真初期設定particle名古屋開府400年祭AppleStoreoption要素ビジュアルエディタtextarea要素静岡松本渚input要素企業課題グループ制作output要素select要素DTPWORLD中日ドラゴンズナゴヤドーム長屋めぐみ作品集真鍋大度FICCWebリテラシーアンティー・ファクトリーエイチーム株式会社スタメンWEBサイト制作者のためのHCDの理解in名古屋label要素fieldset要素ゴールデンウィーク鷹野雅弘form要素名商連オンライン授業Zoom20082020茂森仙直会社訪問卒業式たこ焼きポートフォリオサイトメ~テレ阿部淳也コミュニケーションデザインワークショップlegend要素愛知県選手団名古屋市科学館塚本碧情報デザイン基礎まぼろし堀尾真衣トライデント合同企業展2017久保怜也うぇーぶアプリコンテストPlugin戸田芳裕1年生作品展レイアウト熊谷佳紀ES6ウェブアクセシビリティ学習進級展ES2015モリサワ出張講座Markupjbstyle信州アプリコンテスト[ゼロ]F-siteディプロスアサココ!LikeBox豊田市美術館鈴木優太WordCamp知多みるく導入授業イラストマップ笈瀬本通りトライデントNTTドコモ東海岩手県Webアプリスマホアプリスタジオジブリ・レイアウト展商店街プロ野球金シャチ商店街松坂屋美術館大沢たかお求人ビジュアルデベロップメントネスカフェゴールドブレンド伊藤頼子知多半島アクセシビリティポートピア名古屋サーバー名古屋メディアボンドフナ犬YORKE.プロトコル分析技能五輪予選WEBサイト制作者のためのHCDの理解IAunoplusブラザー工業株式会社キルターズフェスティバル2011笈瀬本通商店街名古屋市中村区放課後のプレアデスSUBARU日本の四季中部国際空港GAINAXFLAVER3.0FLVforLoadLazySlimbox2ウェブリテラシー協会8341-3:2010XJISキルト展愛知県立芸術大学DTPの勉強部屋ablogcms伊達千代北岡弘至3JAPANWORLDCUPMagnumトライデントカレッジUntitled!!!!!!!!絵文字円JOY!map卒業・修了制作展CustomSmiliesKtaistyle英国王のスピーチ卒業制作・研究発表会2011ぬいぐるみのラパン大西健太田中稚妃呂笈瀬本通名古屋グランパスチタハン10名古屋クリエイターフットサルCODETwitterグラフィクデザインポスターデザイン・コンペディションWEBサイト制作者のためのHCD(人間中心設計)の理解Andrioidペルソナ1→10design細川太郎シナリオiPhone4ITCIRCUS柴乃櫂人広島弁みの治商店三蔵中部国際空港株式会社CODEポスターデザイン・コンペティション小林信次株式会社アクアリングカメラワーク横浜デジタルアーツGoogleAnalytics石井研二増田悟名古屋サイト改善研究会Ultimate商店サイト制作プチ・フレーズGA愛知商業高校中級編名駅経済新聞名チャリタロヲヨウイチBlogUTZOOMLabuatTokyo「ヤノベケンジ-ウルトラ」展ワークスコーポレーション山村浩二デコクレセキュリティGENOウィルスCOMPLETECHILDRENTAFF'09広告批評WCAN×CSSNite西村真里子武豊町アートアニメーションADVENTVIIFANTASYFINAL□□□switch日本ファルコムActionScriptヱヴァンゲリヲン新劇場版:破西田幸司国家検定食品サンプル旭食品サンプル製作所ウサビッチカナバングラフィックス富岡聡学科インターネットスキル認定普及協会ライブペイント荒俣宏ファルコム音楽フリー宣言音楽ゲームUNIQLOCALENDAR黒い太陽ウルトラ展ヤノベケンジカスタマイズセミナープレゼン演習ActionScript基礎HelveticaSagmeisterStefanW+KTokyo(+CRUZ)デザインのへそWebDirectionEast'08ASIASIGGRAPHXRAY2008WinterQubibiArtlessTHEWEBウェブデザイン部門カンファレンスCONTEST01Nam丹下紘希HPデザインデザインコンテストVideopuppetry鳥取TEXTURE中村勇吾佐藤可士和SakaeサムライCS4HTML+CSS基礎造形基礎デッサンDesignNightCollege愛知県美術館アンドリュー・ワイエスデザイン鳥取砂丘PHPデザイナーのためのプログラミング入門FLEXFLASHMAX電信柱エレミの恋コマ撮りアニメクリ博就職フェスタペルソナ&シナリオ法浅野智おかだよういち3校合同発表会横浜デジタルアーツ専門学校森川眞行会社見学鎌倉日本電子専門学校ペルソナ/シナリオ法情報デザイン教育勉強会コピーライティング小野裕子#infoedu教育勉強会山崎デザイン事務所スーパーエレメンツバルサマンイラストコンテストデュエル・マスターズ長谷川恭久箱根合宿横浜中華街WCAN46福みつ餃子浜松TAFF武豊アニメーションフェスティバル道頓堀ナゴヤ武将都市名古屋おもてなし武将隊IA2010キックオフセミナー夢プロジェクト2009・成果報告会AndNIKE慶華飯店新横浜ラーメン博物館ThenThereウェブリテラシー協会第一回セミナーSalsaWasロゴ公募FITC第4回アックゼロヨン・アワードCG・イラストコンテストモーション演習animationLPOギレン総帥人喰いの大鷲トリコ是枝裕和監督ナゴヤデザインウィーク2009UNIQLOCKescalatorアニメーションアイディグラフィックス学生参加CMS特集ソバットシアター今井佳子グラフィックデザインMozorama後期入賞ガンダム東京ゲームショウ2009大富豪スコアシートゆるキャラFlash-GameswonderflKyoto閉会式映画のオープニングCREAMごはんとFlashマークアップ演習マクロマリオネットdotFesHCDプロセスYahoo!世界のCMフェスティバルITホワイトボックスPHP勉強会JAPANインターネットクリエイティブアワードストリートビューブランディングAutuminカラー新世界第50回v4.0.1WCAN2017SpringSyntaxHighlighterECMAScriptお母さんの二度見展Proxy学校スタジオディテイルズ服部友厚佐藤洋介ターミナルマイクロソフトWebプログラミング初級講座インスタグラムInstagram醐りょういな世料理芸大appendChild()HTMLCollectionNodeList美大鈴木雄太山川綾那堀川友章関口浩之安藤志維Contentsofフォントおじさんミス・ユニバース・ジャパン岐阜大会堀川志維安藤NCF2017TableTOC尾鷲高校衣台高校梅澤朝樹株式会社エイチームノートPC貸与夏休みの課題AWARDS出身高校D3.jsスクラップブック驛麺通り再進学原一浩2016坂本邦夫WebプログラマーWebディレクター津田直明制作実績カークスヴィルIA/UXプラクティス平野秀幸坂本貴史Web制作のおしごと懇親会レスポンシブWebデザイン職業実践専門課程ウェブアートデザイナーうぇ~~~~~~~ぶワイヤーフレーム出席率学位合宿合同制作合同制作合宿専門士沼田啓助河地芳明水曜日のカンパネラタカガールサイトプラネタリアンResurgenceDay:日清食品グループジムナストコロン学園祭情報系Monaca学生作品集IndependenceクイズJSBinCodePenプログラムクイズAO入試JSFiddlePlunker駅麺通り涼麺jsdo.itCodeply友章WWW(Welcome落合祐介信州アプリコンテストゼロ杉浦麻紀ライフスタイル冬休み足立丈也、平子卓哉、増田隼也eatスポーツアナリティクスエペフェンシングmarker仙直茂森祐司PhotoshopCS6髙橋茜音STUDIO株式会社アンティー・ファクトリー髙橋コンテストソレコン☆ポスコン2019茜音株式会社LIGHTzclasses進級制作OriginalTshirt.stフロントエンドマイクロインタラクションICS株式会社COTS第3回専門学校HTML5作品アワードパラサイト2020アカデミー賞企業賞進級制作展池田泰延MILKあけましておめでとう新年2019年令和2年HappyNewメンバーズ三瓶YearLIGCBC東京ゲームショウ2018VRカルタ出前授業青山高校新城高校OculusGOsourcepicture沖縄県第56回冨田伴成イークリエイトWebデザインスペシャルデー期末テスト北川パーヤンWorld)to脆弱性なんと読む?韓国藤井英一JIHYEHEOホ・ジヘsrcset第56回技能五輪全国大会線の群生2020新卒FigmaツールUIデザイン日本総合ビジネス専門学校株式会社MTGTBSわたし、定時に帰ります。新入生オリエンテーション企業見学牧野史門桝田草一NextDoor斉藤洸貴cymaEC事業前川元成コーヒー用品株式会社サイバーエージェントあけおめ平成31年メーカー・ブランド仕事UIPARTYそこにいない。展Perfumebyinspiredあいちトリエンナーレ2013Webデザイン演習さかなや晴れやか嵐が如く第51回技能五輪全国大会Rhizomatiks田代豊みんなのICT佐藤ねじFacebookたこ焼きパーティWeb制作合宿東京就職たにぐちまことプレゼンThree.js木下健太郎フジ家55麺屋ココイチ卒業研究制作展10日でおぼえるLinuxサーバー入門教室最優秀賞ジョルテKDDIトライデント合同企業説明会F81教室parseInt()DesignergoogleGWDHTML5スマートアプリ&クリエイティブコンテストモテ声ボーダー芸術大学高橋雅人カレーラーメン麺やOK美術大学NCF2013list-itemdisplaylist-style-typeNTTドコモ東海支社Muse画像をチェックボタンにするゲーム大賞アマチュア部門Ohana東京ゲームショウ神戸神戸国際展示場メールマガジンロゴマーク迎春敢闘賞ツインメッセ静岡静岡県鈴木ドラゴンゲートDRAGON愛知淑徳大学みつけもの恵那市岩村GATEGoogleロゴプラネタリウムライアン・ウッドワードマーサ・グレアム5月11日2011年度ドコモFacebookページSVGベースキャンプ名古屋SHOWGAMEIllustrator長野張山大祐JQuery松井友奈結果TOKYO東京ゲームショウ2012NHNStationFuturedocomoイマジンカップTeam第7回若年者ものづくり競技大会尾花大輔Bloom*BlockBloosumparseFloat()備忘録八木智章Scrollmagic竹中民男夏麺フェア木村哲朗ScrollMagicVelocity.jsワクワク建設タウン建設経営者倶楽部アクセシビリティからはじめる、WebサイトのUXデザイWebアクセシビリティ森田霞HighlighterCSS3&jQueryで作るスマートフォンサイトUI図鑑名古屋駅麺通りNCF2014新年のご挨拶インターンシップWF1でBLOGSyntaxCrayon2015年度新入生第53回熊﨑彩グロースハックグロースハッカーPlatformKaizenアクティビティシナリオ14高校バイドゥ平野健太郎ポートフォリオアイデア帳採用担当者の心に響く源賢司UXデザイン松田洋樹3DCG東京コスモクリスマスCGスペシャリスト味仙Dmm.com岡田陽一FlexibleBoxFlexbox親孝行麺の匠那智の大滝大門坂本州最南端串本八鬼山熊野三山和歌山中華そば岩出本店丸田屋丸高アロチ本家熊野古道マカベン中村健太道家陽介concrete5栗山聡一ランチ石原愛実名古屋マークアップ勉強会tableテーブル宇野剛志スパルタキャンプ柏木祥太type属性optgroup要素紅茶専門店Liyn-anアイテムカンパニーネイルサロンマウアkeygen要素datalist要素オリエンタル第52回技能五輪全国大会HTMLbutton要素授業アイチータAO特別授業青空学区名古屋市営地下鉄Animation西岡克真結団式青山敬司山田拓生加藤ひとみプロジェクションマッピング

メールフォーム

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

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