<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ネタ on kimoto</title><link>https://new.kymt.me/tags/%E3%83%8D%E3%82%BF/</link><description>Recent content in ネタ on kimoto</description><generator>Hugo</generator><language>ja</language><lastBuildDate>Tue, 25 Jun 2013 00:00:00 +0000</lastBuildDate><atom:link href="https://new.kymt.me/tags/%E3%83%8D%E3%82%BF/index.xml" rel="self" type="application/rss+xml"/><item><title>PokemonFlash</title><link>https://new.kymt.me/projects/pokemonflash/</link><pubDate>Tue, 05 Jul 2011 00:00:00 +0000</pubDate><guid>https://new.kymt.me/projects/pokemonflash/</guid><description>&lt;p&gt;起動するとデスクトップ全体が虹色に明滅しはじめる、Windows のネタプログラムです。名前の由来は readme に貼られた&lt;a href="https://en.wikipedia.org/wiki/Denn%C5%8D_Senshi_Porygon"&gt;電脳戦士ポリゴン&lt;/a&gt;(ポケモンショック)の Wikipedia リンクで、あの点滅をモニタのガンマ操作で再現します。&lt;/p&gt;
&lt;h2 id="仕組み"&gt;仕組み&lt;/h2&gt;
&lt;p&gt;ウィンドウは作るものの非表示のままで、画面には何も出しません。&lt;code&gt;WM_CREATE&lt;/code&gt; で 10ms のタイマーを仕掛け、tick ごとに &lt;code&gt;SetDeviceGammaRamp&lt;/code&gt; で画面全体のガンマランプを書き換えます。ガンマは R/G/B それぞれ&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;gammaR = sin(θ + 1.0) + 1.5
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;gammaG = sin(θ + 0.5) + 1.5
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;gammaB = sin(θ + 0.0) + 1.5 (θ は tick ごとに +0.2 rad)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;で揺らされ、各チャンネルが 0.5〜2.5 の間を周期約 314ms(タイマー公称値換算)で正弦波往復します。位相が 0.5 rad ずつずれているので、単なる明滅ではなく色被りが回りながら明滅するのがポイント。ランプは &lt;code&gt;((i+1)/256)^(1/γ) × 65536&lt;/code&gt; の LUT をハードウェアに流し込む方式なので、どんなウィンドウを開いていても画面全体が対象になります。&lt;/p&gt;
&lt;h2 id="終了のしかた"&gt;終了のしかた&lt;/h2&gt;
&lt;p&gt;メッセージループはありません。起動直後に出る「Quit?」の MessageBox のモーダルループがタイマーメッセージを回し続ける構造で、この確認ダイアログが実質メインループです。OK を押すとガンマを 1.0 に戻して終了します(Mutex による多重起動防止つき)。&lt;/p&gt;
&lt;h2 id="再現イメージ"&gt;再現イメージ&lt;/h2&gt;
&lt;p&gt;当時のスクリーンショットは残っていないため、下のアニメーションは上記のガンマ変換式を &lt;strong&gt;AI がグレーのデスクトップ模式図に適用した創作イメージ&lt;/strong&gt;です(実際の画面ではありません)。実物の点滅は約 3.1Hz と光過敏性発作ガイドラインの閾値を超えるため、&lt;strong&gt;ここでは 1/4 速(約 0.8Hz)に減速&lt;/strong&gt;してあります。本物は&amp;quot;この 4 倍速&amp;quot;で光ります。&lt;/p&gt;</description></item><item><title>kaiwa</title><link>https://new.kymt.me/projects/kaiwa/</link><pubDate>Tue, 25 Jun 2013 00:00:00 +0000</pubDate><guid>https://new.kymt.me/projects/kaiwa/</guid><description>&lt;p&gt;飲み会とかの会話生成アプリ。&lt;/p&gt;
&lt;p&gt;→ &lt;a href="http://kymt.me/app/kaiwa"&gt;http://kymt.me/app/kaiwa&lt;/a&gt;&lt;/p&gt;</description></item><item><title>dice</title><link>https://new.kymt.me/projects/dice/</link><pubDate>Tue, 25 Jun 2013 00:00:00 +0000</pubDate><guid>https://new.kymt.me/projects/dice/</guid><description>&lt;p&gt;サイコロアプリ。&lt;/p&gt;
&lt;p&gt;→ &lt;a href="http://kymt.me/app/dice"&gt;http://kymt.me/app/dice&lt;/a&gt;&lt;/p&gt;</description></item><item><title>pi.kymt.me</title><link>https://new.kymt.me/projects/pi/</link><pubDate>Tue, 25 Jun 2013 00:00:00 +0000</pubDate><guid>https://new.kymt.me/projects/pi/</guid><description>&lt;p&gt;Amazon 画像版 jpg.to。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://new.kymt.me/images/projects/pi-kymt-me-2012-rerender.png" alt="pi.kymt.me のトップページ(2012年12月)"&gt;&lt;/p&gt;
&lt;p&gt;トップページは使い方の1行だけ、という作り(Wayback の 2012年12月スナップショットより)。&lt;code&gt;pi.kymt.me/○○.jpg&lt;/code&gt; の形式で URL を作ると、○○の部分で Amazon を検索してマッチした商品の巨大な画像が返ってくる。&lt;/p&gt;</description></item></channel></rss>