![]() |
|
Spaces home ※ 画面は開発中のものですPhotosProfileFriendsMore ![]() | ![]() |
※ 画面は開発中のものですいろいろと作ってます。 プログラミング( VC++, C#, Javascript, PHP ) 時々ノイズ(鉄道 庭のビワ 他)
|
||||||||||||||||||||||||||||||||||||||||
|
September 23 レーシック手術日の朝は7:30に起床することにしていたが、早めに目覚めた。
が、全く寝られないほどではない、その程度の緊張感だった。
ギリギリまで 「やめとけ、レーシック」みたいなページばかり見ていた。
当日キャンセルは原則無理と書いてあった。
最初の部屋 終わると、目の前が白くなったが、全く見えないわけではない。 2番目の部屋 またレーザーを照射される。 「終わりです」と言われて立ち上がり、回復室に連れて行かれる。 回復室 最後のチェック・解散 帰りの状況 これから すべきか August 15 レーシックの事前検査手術が可能かどうか調べにいってきた。(ここまでは無料)
結論は、可能。 ただ、消耗品であるらしい角膜の厚さが1回分+a しかないため、
極わずかな確率での失敗時に再手術ができないかもしれないとのこと。 視力1.0獲得率は98%で、だいたい0.6くらいあればいいと思っているので成功率は 98%+少し。 この確率は、信頼すべきものだと思うが、勇気は要る
眼鏡屋でフレームを選ぶためにも。(まだかけるつもり) 高い特殊レンズ代を省略して安く買うためにも。 成功すればプールサイドで躓かない。
成功すれば免許も裸眼で取れる。 視野が広がる(最近のメガネはレンズ小さいから。)
シャンプーとリンスを間違えない。
メガネをなくしても匍匐前進は不要。
悲惨な事故(踏み潰されたり)で大事なメガネを失わずに済む。 裸眼時の目は3でもεでもない。 夢のような生活に戻れるらしい、18万くらい & 98+a% で。
今は昔、最初メガネをかけるときは、 それまでの数週間、寝る前にミドリンとかいう目薬を点眼したりしてメガネにならぬよう粘った。 結局、周りの人より早くメガネをかけ、「メガネくん」とお決まりの名前をもらいながら、 「どうしようもないのか」と、しばらくは我慢の日々だった。 それが今日はなんという技術の進歩だ。このまま行けば不老不死も夢じゃないかと思えるほどだ。 でもやはり少し怖いとは思う。 検査は結構長かった。 帰りは目薬の効果でまぶしい。夕日がまぶしくてお化けになったかと思った。 さて、残るは最後の決断である。 August 06 Nicovolume 0.2521. ちょっとした機能追加をしてみた。 時間が来ると、下のような画面が表示され、スライダーが左右に動きます。 2. IE の自動起動が不要な場合のため、インストーラで ブラウザ拡張の有無を選択できるようにしました。 3. Vista 環境で、 互換モード を使用する必要がなくなりました。 * 古いバージョンを消してから新しいバージョンをインストールする必要があります。
Nicovolume の記事
Vista でのマスタボリュームコントロール についての 参考文献 http://msdn.microsoft.com/en-us/library/ms679161(VS.85).aspx August 01 フーリエ級数フーリエ何とかというものがさっぱりわからないので、教科書に書いてある次のような数式をもとに計算させてみた。 周期Tの周期関数 f(t) が下のように展開される。 OnPaint に直接適当にコードを書く。
public int n;
public double func(double d) {
return ((int)Math.Abs(d) % 50 < 25) ? 0 : 50;
}
public double func_a(double d) {
return func(d) * Math.Cos(n * 2 * Math.PI / 50 * d);
}
public double func_b(double d)
{
return func(d) * Math.Sin(n * 2 * Math.PI / 50 * d);
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
int x;
double y = 0;
Point prev = new Point(0, 0);
for (x = 0; x < 300; x++) {
double a0 = 1.0 / 50.0 * mymath.simpson(-25, 25, 0.001, func);
y = a0;
for (n = 0; n < 10; n++) {
double an = 2.0 / 50.0 * mymath.simpson(-25, 25, 0.01, func_a);
double bn = 2.0 / 50.0 * mymath.simpson(-25, 25, 0.01, func_b);
y += an * Math.Cos(n * 2 * Math.PI / 50 * x);
y += bn * Math.Sin(n * 2 * Math.PI / 50 * x);
}
e.Graphics.DrawLine(Pens.Black, new Point(x, 200 - (int)y), prev);
prev = new Point(x, 200 - (int)y);
}
}
* simpson関数はこちら すると、こんな感じに表示された。 ループすればするほど元の四角いグラフに近づいている。 シンプソンの公式シンプソンの公式のプログラムを汎用的にしておく。 シンプソンの公式は、関数を二次曲線で近似させて積分する方法。 関数f の、st~ed の間を、刻み幅h以内で積分する。
//シンプソンの公式で積分する
public delegate double simpsonFunc(double d);
static public double simpson(double st, double ed, double h, simpsonFunc f){
//刻み数を決める
int nh = (int)(Math.Abs((ed - st) / h) + 1.0);
if (nh % 2 != 0) nh++;
h = (ed - st) / (nh-1);
int cnt;
double total = 0;
for (cnt = 0; cnt < nh; cnt++ )
{
double tmpadd = f(h * cnt);
if (cnt == nh - 1)
{ //最後:そのまま
}
else if (cnt == 0)
{ //最初:そのまま
}
else if (cnt % 2 != 0)
{ //奇数
tmpadd *= 4;
}
else
{ //偶数
tmpadd *= 2;
}
total += tmpadd;
}
return h / 3.0 * total;
}
この前のシンプソンの公式
|
足跡。
|
||||||||||||||||||||||||||||||||||||||
|
|