C++

画像形式PNGへの変換(C++で簡単に)

あれ?ここは?電脳意識の中か?。。(ザザッ、、)やあ、俺だよ。任意の画像形式をPNG形式に変換するツールをC++でお手軽に作りたくなったので、OpenCVで何も考えずに、imreadとimwriteを使って作ったのでそのための最低限のソースを以下にメモってみる。ま…

パス表記のダブルクォーテーション問題は、BATファイル内で解決しよう。

「MS‐DOS/コマンドプロンプト」完全マスター―基本から実践、バッチファイルまでさまざまなシーンで便利に使え、定型作業を省力化作者:村上 俊一メディアテック出版Amazonやあ子供たち。物理ベースドレンダリングなんかに夢中になってる場合じゃないぞ、今は…

MNISTバイナリファイルから画像とラベルを抽出してみたよ

C++

やあ子供たち。機械学習やってるか。最近は猫も杓子も機械学習だよな。教師データで「トレーニング」をして覚えさせたら今度はその覚えさせたものを使って、「予測」させる。言い換えれば、「これはこう、これはこう、でこういうのはこう」とさんざん教えた…

vs2017 community edition をインストールしてみたよ

やあ子供たちご無沙汰したな。今回おじさんはVS2017のCommunityEditionを個人的に導入してみたのでそのメモだよ。●まずはインストールフォルダの構成がちょっと変わったのではという話。 C:\Program Files (x86) の下にある、歴代VSのインストールフォルダは…

C++SimpleProfilerを作ったよ

C++

やあ子供たち。寒いけど春はもうすぐそこまで来ているぞ。でも今はスノボシーズン真っ只中なので、若者はプログラミングなんかしてないでスノボに行った方がいいぞ、雪山にな。さて今日は簡単なプロファイリング用便利クラスを紹介するぞ。その名もSimplePro…

WaitForMultipleObjects()には気をつけろ!

やあ子供たち。マルチスレッドやっているか。 よくWaitForMultipleObjects()関数が、待ってくれない、などの書き込みを目にするけど、おじさんの場合は笑っちゃうくらい別次元の問題だったようなのでここにメモしておくぞ。 まず、待ってくれないコードが以…

OpenGLSimpleShaderAdapter

やあ子供たち。 以前VertexAttribArrayHelper(VAAH)というものを作りました。これはつまり、glVertexAttribPointer()やglBufferDate()など、何かと解り難いOpenGLAPIの呼び出しをラップして、固定パイプラインと呼ばれる、旧API(glBegin(), glVertex3f(), …

glm 0.9.6 perspective 事件簿

↑この法線マップもどき何か変だと思った君、センスある! やあ子供たち。GLM使っているか。GLMだよ。 http://glm.g-truc.net/0.9.8/index.html そうだね、OpenGLのいろいろなものがDeprecatedになってしまった今、GLMはほとんど手放せない存在感を発揮してい…

C++で利用可能な乱数発生オプションを知ろう。

C++

やあ子供たち。rand()使ってるか。おじさんはこれまでコンピュータが発生してくれる乱数についてあまり深く考えたことなかったけど、世の中にはランダムに何かを決めて統計的に正しい結果を出そうというアルゴリズムが結構あるね。モンテカルロシミュレーシ…

静的ライブラリ作成時の備忘録

C++

やあ子供たち。日々自分を高めているか。夏休みの宿題はもうやったかな。何事も毎日こつこつと確実に前進することが大事だぞ。それは生きることの意味でもあるんだからよく考えて日々を送るようにしろ。 ところで今日はWindowsの静的ライブラリ(.lib)をVis…

さようならmem_fun1(VisualC++2015の国から)

C++

やあ子供たち。英語と親しんでいるか。英語が読めない日本の大人や子供たちはそんなんでどうやってプログラミングとか勉強するんだろうとおじさんはとても心配しているというか、不思議に思っているんだよ。 さあ今日はmem_fun1の話だ。VisualStudio2015に喜…

マネージドとアンマネージドの混合環境でのデバッグ

やあみんな。VisualStudio2013環境で、最近おじさんはまたよからぬことを考えて、C#,C++/CLI,C++を混合したソリューションの開発をしているわけだが、 アンマネージドコード内のデバッグを有効にするために、以下のことをやったら実現できたのでメモしておく…

_dupenv_s()のマイラッパー関数

やあ子供たち。 getenv()はC言語において環境変数を取得するための便利な手法でしたが、VisualStudio2013ExpressEditionとかではもはやwarningではなくerrorとして扱われるようになってしまいました。たしかに、getenv()は文字列を返す関数ですが、よくよく…

WPFでOpenGLプログラミング

(本記事は書きかけです) やあ子供たち。元気にしてたかい。久々の更新となる今回はWindowsプラットフォームにおける後発のユーザーインタフェース開発環境であるWPF環境において、OpenGL窓を実装するお話だよ。今回はOpenTKやTaoFramework、SharpGLといった…

std::vector::erase(1引数版)の誤呼出しに気をつけろ!

C++

やあ子どもたち、今日はタイトルそのままの内容だよ。vectorコンテナの内容のうち、ある条件を満たすものだけを超高速に一括削除したい場合は、eraseと、remove_ifを使うものだってことはもうおじさんも何年も前から記事に書いたりしてきたし、EffectiveSTL…

ループ環構造も扱える双方向連結リストのデータ構造とアルゴリズムについて

C++

やあ子どもたち。おじさんはビーズを数珠(じゅず)状に繋げたいと思いました。いろんな感じにビーズを繋げたくて、輪っかとかも作りたいと思いました。好きな場所にビーズを挿入したり、取り除いたり、、そして繋げた個々のビーズたちが、互いに隣り合うビ…

本日の抽象化「遅延更新配列」

やあ子どもたち。夏も真っ盛りだ。楽しくやっているか。一緒に遊びに行ってることなんて実は何とも思ってなくて、それよりも付き合っているのかいないのか、そこの線引きを自分でするかしないかが大事らしいぞ。早い段階でそこをはっきりとさせる申し出をす…

OpenGL ES2時代の形状情報構築について

やあ子どもたち。新しいOpenGL使ってるか。でっかい組織の中で毎日何やってるかわからない人生送るよりは理学療法士とか社会福祉士とかになった方がよっぽど充実した人生になるという考え方もあるからみんなも人生プランよく考えろな。 glBegin()/glEnd()を…

高速フーリエ変換(FFT)をおじさんもC++で作ってみたよ

マンガでわかるフーリエ解析作者:渋谷道雄,晴瀬ひろきオーム社Amazon やあ子どもたち。数値配列を日常的に扱っている俺達プログラマーにとって、フーリエ変換がいかに簡単かというイメージを忘れないように以前日記を書きました。その中で、DFT(離散フーリ…

簡単キューブ形状生成CreateIndexCube 再び

やあ子どもたち、会社や職場などで戦力外通告を受けてもホイミスライムのように逞しく生きているか。まわりの空気など気にせずに自分の目的意識をしっかり持てるかどうかが大事だぞ。 今日はキューブ形状のインデックス形式を早々に生成して返してくれる便利…

glmとclapackでレイ・トライアングル交錯計算

やあ子どもたち元気にしてたかな。 今日はレイ・トライアングル交錯についての考察だよ。レイトレーシングとかピッキングなどで利用頻度の高い計算の一つだ。今更な話題だけど何度も作り直したりするロジックの一つではないかな。 今回おじさんはglm::lookAt…

パスつきファイル名の解析

Windowsにおけるパス付きのファイル名を、「'\'が末尾についた状態のパスの部分」と、「パスの部分を取り払ったファイル名部分」とに、分けます。 PathStripPathと、PathRemoveFileSpec という、2つのWin32APIを使用しています。 #include <shlwapi.h> #pragma comment(</shlwapi.h>…

単数選択ロジックを抽象化してみた

後日記:単数選択ならこんな複雑な実装は必要ない。各インスタンスに選択されているかどうかのフラグを持たせる必要などなく、、_active_instanceの記憶保持のみで、「定数時間」要件はいずれも実現できる。任意のインスタンスが選択状態かどうかは、_active…

マウス・レイの計算 2013

やあ子どもたち。以前、数年前にマウスクリック・レイの計算についての記事を書いたが、GLSLの勉強やglmなど使いながら数年分の成長を見せたおじさんが再度送る、よりスマートなマウスクリックレイの実装を今日は子どもたちにお届けするぞ。 マウスクリック…

Cocoaでキーボードの押下状態取得その2

やあ子どもたち。元気でやっているか。six figure salary の意味は皆知ってるかな。これはsix figure つまり6桁ドル稼ぐ人=年収が大台に乗っている人のことを指すそうだぞ。勉強になったな。 さて暖かくなってきたからといって夜更かししまくるのではなく…

プログラムの国のフーリエ変換

やあ子どもたち。花粉症は大丈夫か。今年は花粉症どころかPM2.5の方が空気中の微粒子として何やら気になるから無用の外出は禁物だぞ。 今日はプログラムの世界でのフーリエ変換の話をしよう。コンピュータを使ったプログラムで出来るのは離散フーリエ変換(DF…

トラックボールカメラの実装

やあ子どもたち。ビューマトリックスで遊んでいるか?今日もビューマトリックスの話題だよ。ビューマトリックスの考え方や実装方法については過去日記その1や過去日記その2で考えてきたね。今日はユーザーの入力に対して実際にビューマトリックスをどう決…

std::vectorのfillコンストラクタをどんどん使おう

C++

やあ子どもたち。元気にしてたかな。今日はstd::vectorの初期構築方法とそのパフォーマンスについて考えるよ。 25万要素の vectorで、しかもその中身が全て71で初期化されているものを用意することを考えよう。この場合は、vector を、サイズ指定で初期化し…

二次元の回転は複素数を使って一行で書け!

やあ子どもたち。今夜あたりはまた雪が降るとかいう噂だけど雪かきはちゃんとやっているか。とくに道のことだよ。自分ちの駐車場なんかより家の前の道の雪かきをしっかりやって、通りを行く人の利便性を計った方がよっぽど世のためになるぞ。 さて、今日は2…

glm::mat4でビューマトリックス4番勝負

やあ子どもたち。関東では大雪になったけどスタッドレスちゃんと履いてたか?スタッドレス履いてても降った翌朝なんかは道ボコボコだからどの道気をつけて運転しないとだめだぞ。今日はglm::mat4の話だよ。 glmって何?っていう人は帰ってくれ。さてさて、ma…