AVRマイコンでADCを自動実行する
最近久しぶりに電子工作をやっている。AVRマイコンを触っているのだが、AD変換器に自動実行機能があるのを今更にして知ったのでそれについてまとめる。
1つ大きな注意点も見つけたのでそれも含めてメモ。
最近久しぶりに電子工作をやっている。AVRマイコンを触っているのだが、AD変換器に自動実行機能があるのを今更にして知ったのでそれについてまとめる。
1つ大きな注意点も見つけたのでそれも含めてメモ。
「libfontlist」というC++向けのライブラリを公開した。これはシステムに登録されたフォント情報をクロスプラットフォームで読み込めるライブラリだ。無かったので作った。
libfontlistはWindows、Linux、macOSの主要3プラットフォームに対応している。それぞれ頑張って個別に対応したに過ぎないのだが、macOS対応が最も情報が少なく苦労した。そういう訳でこの記事ではその技術的な詳細についてまとめる。
「CoreText」というAPIを利用したのだが、公式ドキュメント以上の情報がほぼ無かった。
固体物性の分野を学ぶと、結晶構造の議論においてどうしても避けられないのが逆格子ベクトルの話題だ。筆者は化学専攻ではないが、電気電子専攻として半導体物性を勉強しており、最初に当たった壁がこれだった。
学部生は初回の授業で1次元での話を出され「ああ周期性あるからフーリエ変換するんでしょ、分かる分かる」と言っていると、多次元化したとたんに『ブラべ格子』『基本並進ベクトル』『逆格子ベクトル』『ブリルアンゾーン』などと矢継ぎ早に分かったような分からないような単語を繰り出されて身悶えすることになる。
この記事では、多次元空間上の周期性のある関数を多次元フーリエ変換すると自然に逆格子ベクトルが発生することを確認したいと思う。
線形代数の世界ではエルミート形式や二次形式と呼ばれる形の式がある。
\mathbf{x}^\ast \mathbf{A} \mathbf{x}
ここで\mathbf{x}は通常の縦ベクトル、\mathbf{A}は正方行列である。
\mathbf{x}^\astは\mathbf{x}の随伴(転置して複素共役をとったもの)を表す。
量子力学におけるブラケット記法で演算子を挟み込むやつなんかも中身はこれである。割と色々な場面で出てくる式なのだが、これの直感的解釈について。
CMakeはC/C++製のプログラムをビルドする際にほぼ必須と言っても良いツールだが、ビルドしたものを配布する際の注意点というものはあまり共有されていないように思う。
まさか万人がソフトウェアをソースコードからビルドするという訳にも行くまい。この記事ではCMakeを利用してソフトウェアを開発し、そのバイナリを配布する際の注意点について書きたいと思う。環境はWindowsに絞る。
とりあえずWindows向けのビルドでは殆どの場合においてMSVCかMinGWを用いるものと思うので、その2ツールを対象に解説する。
久々に小ネタ。現代のGPUにはw除算と呼ばれる仕様が存在するが、これは一種の二項演算として見たときに結合律を満たすのか?という疑問について。
結論から言うと満たす。以下ではその証明を書く。
(2025/3/17追記)シェーダの挙動について不正確な点があったのでリライト
2Dゲームを作るにあたり、頭を悩ませることになるのが坂道の実装である。坂の形状との交差判定自体は別に何も難しくない。 坂を滑らかに登ったり下りたりできるような挙動の実装が難しいのである。
坂道のない、矩形のブロックのみの衝突判定については別の記事で詳述しているので、まずはそちらを読んで欲しい。 (リンク) この記事で解説した「座標軸別移動衝突法」をベースに説明する。