全42件 (42件中 1-42件目)
1
ポータルを修正しました。前回の衆院選の時に作成したものれす。http://ariradne.web.fc2.com/現在のブログれす。http://blog.auone.jp/pakuribaibainida/PC用のブログです。http://chihirom24.blog44.fc2.com/blog-entry-3.html/
2008.07.30
コメント(0)
おもちをついた。おぞうにをたべた。お昼は焼肉でした。トントロたくさん食べました。韓国の甘味噌をつけて食べた。天津あまぐりをたべた。
2006.01.03
コメント(2)

2005.11.03
コメント(1)
痛い死ぬぅ痛い息ができない死ぬぅこれを約一時間言い続けましゅた。三日前の明け方三時ごろれす。シンレッドラインという映画で爆弾で腹部を負傷した兵隊が出てくるんれすが、その兵隊さんがモルヒネをくれーと仲間に向かってわめいてる所が頭に浮かんできましゅた。平時には思い至らない貴重な体験れす。
2005.10.11
コメント(0)
民主党の車が止まってました。うで、そばに立ってたおばさんからビラをもらいました。民主党の機関紙か何かれす。でもらって帰って読んでみたんれすが、そしたらすごい論調で「役人にゆうこときかせる」とか書いてあってあーこりはまずぃかなァって。思ってそりで、じみんとうに投票したんれすよ。
2005.09.15
コメント(0)
なんか今日は、ふれすて始まって以来の大入りれした。やっぱりカード詐欺は怖いれしゅもんね。こういう時は、日ごろのご愛顧に感謝して何か大サービス・・をするべきなんれしょうけど都合により今日は何もしましぇん。うでもそのうちマトメて行いましゅからね。うで、今日は MAX MIN マクロについてれす。ちなみに、こりのインプリメントはwindef.hにありましゅ。// a か b か、大きい方を返す。#define max(a,b) (((a) > (b)) ? (a) : (b)) // a か b か、小さい方を返す。#define min(a,b) (((a) < (b)) ? (a) : (b)) // 使い方 max_value = max(10,15); // 結果は max_value == 15 となる。 min_value = min(10,15); // 結果は min_value == 10 となる。// 同じ処理を関数化するとこうなる。int Max( int a, int b ){ if ( a > b ) return a; else return b;}以上れす。森永チルミル
2005.07.28
コメント(0)
何だか怖い組織の手に渡ってしまったみたいれすよ。さっきニュースで聞いて、大急ぎで「登録情報」のクレジットカード欄を確認してみたんれすが、項目は5つあるんれすが、私ゃのは全て登録なしれしゅた。他にも購入履歴、アフィリエィトも見てみましゅたがいずれも登録なしれした。んでも住所は悪用さりるかも知れまちぇんね。そりと名前、こりは偽名を使ってたので問題ありましぇん。確認がまだの方は、急いだ方がいいれしゅよ。「 楽天市場 流出データには下着の色やサイズまで 」http://headlines.yahoo.co.jp/hl?a=20050728-00000031-mai-soci
2005.07.28
コメント(0)
#define INSERT_MENU_ITEM(n,i) \(MENU_OBJ::GetObjPtr(n))->InsertMenuItem(i)
2005.07.24
コメント(0)
九州名産だそうれす。食べてみましゅた。ミルキーでおいしいれす。( ほんとにミルキーみたいなミルキー味れす。)そりで食べながら考えてたんれすが、こり、何かに似てるなーって思ってたら、大阪名物551の蓬莱のアイスキャンディー。。のフルーツ味、ありはもうちょっとカチンカチンなんれすが、材料はほとんど一緒みたいれすね。( ミルクアイスにあずきパインオレンジを細切れにしたものが練りこまれている。元祖はみぞれ。)551の蓬~莱http://livedoorshop.depart.livedoor.com/item_detail?id=346276(白)【白くまアイス統一スレ】(白)http://food6.2ch.net/test/read.cgi/candy/1059549530/l100元祖白くまhttp://www.seikafoods.jp/
2005.07.21
コメント(3)
サラダ油で洗ってましゅた。お隣のおばちゃんがしかけたトリモチのワナにかかって死にそうれしたので救ってあげたんれすよ。トリモチを洗い流すにはまずサラダ油をかけましゅ。そのあと中性の洗剤で油を分解して水で洗いましゅ。うでそのあと近くの川原に放しに行ったんれすが、箱を開けるやいなや、すごいいきおいで走り去りましゅた。空っぽになった箱も風で飛んでしまうし後に残さりた私ゃは一人でぽかーんれした。
2005.07.18
コメント(0)
WindowsAPIでウィンドゥを作る( 正確にはリソースをレンタルする )ときに、自分で定義したウィンドゥプロシージャを使うように設定できるんれすが、コントロール( 子ウィンドゥ )の場合は、Windowsが勝手にProcを用意してしまう為そりができましぇん。うでも自分で定義したProcで処理をさせたりしたい、そして、処理してない余ったメッセージは元のプロシージャに渡して処理させたい、そういうときはこうしましゅ。// --------------------------------------------------// プッシュボタンコントロールを作成する ( コンストラクタ )BOOL PUSH_BUTTON::PUSH_BUTTON( HWND h_oya_win, int x, int y, int w, int h, LPTSTR p_caption ){ if ( push_use_count > PUSH_BUTTON_MAX ) return 0; // コントロール作成 h_push_win[ push_use_count ] = CreateWindowEx( 0, "BUTTON", p_caption, WS_CHILD | WS_BORDER | WS_VISIBLE | WS_TABSTOP, x, y,w, h, h_oya_win, (HMENU) push_use_count, (HINSTANCE) GetWindowLong( h_oya_win, GWL_HINSTANCE ), 0 ); // 元のProcを保存 & 自分で定義したProcにすり替える push_proc_old[ push_use_count ] = (FARPROC) SetWindowLong( h_push_win[ push_use_count ], GWL_WNDPROC, (long) PushButtonProc ); ShowWindow( h_push_win[ push_use_count ], SW_SHOW ); // 表示 ++push_use_count; // カウント加算 return TRUE;}// --------------------------------------------------// プッシュボタン専用のウィンドゥプロシージャを定義LRESULT CALLBACK PushButtonProc( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp ){ static int id_this; // ID ( == LOWORD( wp ) ) id_this = GetWindowLong( hwnd, GWL_ID ); // 元のProcに送られるはずのメッセージを先に受け取って // クリック関係のメッセージだけを先に処理する。 switch( msg ) { case WM_COMMAND: switch ( HIWORD( wp ) ) // イベント内容 判定 { case BN_CLICKED: // クリック時の処理をここに書く break; case BN_DOUBLECLICKED: // Wクリック時の処理をここに書く break; } } // そしてその他のメッセージは、 // 元のProcに渡す ( 元のProc呼び出し ) return CallWindowProc( (WNDPROC) push_proc_old[ id_this ], hwnd, msg, wp, lp );}// --------------------------------------------------そりとあと、コントロールなどの子ウィンドゥは、ふつうのオーバーラップウィンドゥのコンストラクタの中で一緒に作ってしまうようにした方が便利かも知れましぇん。( うぅ今日は訂正なしで済ませたいにゃぁという心の声。)
2005.07.17
コメント(0)
人___人___人___人___人___人___人___人___人___人___人___人___人人___人___人___人___人___人___人___人___人___人___人___人___人人___人___人___人___人___人___人___人___人___人___人___人___人人___人___人___人___人___人___人___人___人___人___人___人___人人___人___人___人___人___人___人___人___人___人___人___人___人[○○○] [○○○] [○○○] [○○○]三三三三三三三三三三三三三三三三三三三三三三三三二二二二二二二二二二二二二二二二二二二二二二二二||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2005.07.13
コメント(0)
「OBJ_LIST」というテンプレートクラス、 今回はこりを使ってみましゅ。そりとあと、typename の三つの型 T S Q には、それぞれ・OBJ系のクラス ( LISTの要素となるインスタンスのクラス )・STATE系のクラス ( LISTごとのデータメンバ、メソッド )・Q系構造体 ( 初期化用 )が入りましゅ。この三つは、扱うデータ形式ごとに、別々のものを用意してくらしゃい。[ obj_list.h ] -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-#ifndef _OBJ_LIST_H_#define _OBJ_LIST_H_template< typename T, typename S, typename Q >class OBJ_LIST { private: T **pp_obj; int obj_max; S *p_state; public: OBJ_LIST( int max ) { obj_max = max; pp_obj = (T **)new T *[max]; for ( i = max-1; i >= 0; --i ) *( pp_obj + i ) = 0; p_state = (S *) new S; };~OBJ_LIST(){ for ( i = obj_max-1; i >= 0; --i ) { if ( *( pp_obj + i ) ) { delete *( pp_obj + i ); *( pp_obj + i ) = 0; } } if ( pp_obj ) delete [] pp_obj; delete p_state;};T *CreateObj( int n , Q *p_par_struct ){ *( pp_obj + n ) = (T *)new T( p_par_struct ); return *( pp_obj + n ); };void DeleteObj( int n ){ if ( *( pp_obj + n ) ) { delete *( pp_obj + n ); *( pp_obj + n ) = 0; } };T *GetObjPtr( int n ) { return *( pp_obj + n ); }S *GetStatePtr() { return p_state; }};#endif -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-[ obj_list.h ][ bmp.h ] -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- typedef struct tagBMP_Q { int w; int h; int bit; char *p_path } BMP_Q;//----------------------------------------------class BMP_OBJ{ private: BITMAPINFO *p_bmi; BYTE *p_img; public: BMP_OBJ( BMP_Q *bmp_q ) { }; ~BMP_OBJ() { }; BOOL Load( LPTSTR p_path ) { }; BOOL Save( LPTSTR p_path ) { }; };//---------------------------------------------class BMP_STATE{ private: HPEN h_pen; HBRUSH h_brush; public: BMP_STATE() { h_pen=0; h_brush=0; }; ~BMP_STATE() { }; void Make( BMP_Q *p_q ){ }; void Redraw(){ }; void SetPen( HPEN hp ){ h_pen = hp; }; void SetBrush( HBRUSH hb ){ h_brush = hb; }; HPEN GetPen(){ return h_pen; }; HBRUSH GetBrush(){ return h_brush; }; }; -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- [ bmp.h ][ main.cpp ] -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-#include "c:\test\bmp.h";#include "c:\test\obj.h";int main(){ // 使用例 // ( 各objクラスのコンストラクタ実装部は、それぞれの // 初期化用構造体の形式に対応してるものとする。) // 所持するobjの最大数を指定して、obj_list 作成 OBJ_LIST< BMP_OBJ, BMP_Q, BMP_STATE > bmp_list( 20 ); // objクラスのインスタンスの初期化データを格納する構造体を作成 BMP_Q bmp_q = { 640, 480, 8, 0, }; // BMP_STATEクラスのメソッドで、裏画面を準備。 (bmp_list.GetStatePtr())->Make( &bmp_q ); // objクラスのインスタンス作成 BMP_OBJ *p_bmp_obj = bmp_list.CreateObj( 0, &bmp_q ); // 作成後にファイル読み込み ( 必要に応じて ) p_bmp_obj->Load( "e:\\game\\test.bmp" ); return 0;}-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- [ main.cpp ]やっぱりポインタはこり↓ *( p + n )てへへ。
2005.07.01
コメント(0)
自分で踏んでしまいましゅた。。
2005.07.01
コメント(0)
//----------------------------------------// 655msn1 = *( p_array_3 + i );n2 = *( p_array_2 + n1 );value = *( p_array_1 + n2 );// 265msvalue = *( p_array_1 + *( p_array_2 + *( p_array_3 + i ) ) );//----------------------------------------★ オマケ // マクロ #define ARRAY_1( n ) *( p_array_1 + n ) #define ARRAY_2( n ) *( p_array_2 + n ) #define ARRAY_3( n ) *( p_array_3 + n ) // 使用例 value = ARRAY_1( ARRAY_2( ARRAY_3( i ) ) );//---------------------------------------- ( ※ マクロを使うときはワンスペース空けて書く。)
2005.06.30
コメント(0)
略して書くとKVM...「KVMの全てがわかる本」 かずぅ著詐欺だなこりは。そりはそうと、実験 その2『 switch文は caseの数を増やすと遅くなる? 』 case10までとcase100まで、それぞれ 一億回ずつ回転させてみましゅた所、 結果は、どちらのタイムもほとんど一緒れした。
2005.06.29
コメント(1)
わかってきましゅた。参考になったのはアセンブラの考え方れす。( ほとんど同じものを再現してるだけともいう。)
2005.06.28
コメント(0)
作ってましゅ。トークン分解構文解析どりも複雑れす。が、今週中には何とかしたいれすね。う、本日はそりだけれす。
2005.06.27
コメント(0)
/\/\/\/\/\/\/\/\/\/\/\/\/\/\FASTECH (ファステック) 360http://www.geocities.jp/kiemon2/y-xsinkansen.html音は静かな方がいいれしゅよね。うでもキーンて音がするとかっこいいんれすけどね。\/\/\/\/\/\/\/\/\/\/\/\/\/\//\/\/\/\/\/\/\/\/\/\/\/\/\/\少し前から「PNGファイル」について調べてたんれすが、ほとんどの人は「libpng」というライブラリを使って間接的に圧縮したり解凍したりしてるみたいれすね。う、でこりの圧縮・展開部分には、こりまた外部の「zlib」というライブラリが組み込まれてるんだそうれす。( 実はこり、.zip形式でも使われてるしゅごいライブラリなんれすね。 )う、で今日はその「zlib」を簡単に使える関数セットを作ってみましゅた。 // 指定ファイルから圧縮ファイルを生成する Press( "e:\\test\\before.txt", "e:\\test\\after.txt", 6 ); 3番目のパラメータは、「圧縮レベル」れす。 こりは、0 だと圧縮しない , 6 で標準圧縮 , 9 は最大圧縮れす。 // 圧縮されたファイルを展開して復元ファイルを生成する DePress( "e:\\test\\before.txt", "e:\\test\\after.txt" ); あとそりと、この関数は、画像ファイル以外の形式の ファイルでも圧縮できましゅから色々試してみて下ちゃいね。[ easy_zlib.h ]--------------------------------------------------#include <stdio.h>#include <stdlib.h>#include "c:\zlib\include\zlib.h"#pragma comment(lib,"zdll.lib")int Press( char *p_in, char *p_out, int lv );int DePress( char *p_in, char *p_out ); int OpenIOFile(); void CloseIOFile(); int PressPart(); int DePressPart();--------------------------------------------------[ easy_zlib.h ][ easy_zlib.c ]--------------------------------------------------#include "e:\test\easy_zlib.h"z_stream z;FILE *p_in_file=0;FILE *p_out_file=0;unsigned char *p_in_buf=0;unsigned char *p_out_buf=0;unsigned int in_buf_size=1024;unsigned int out_buf_size=1024;char p_in_path[ 270 ];char p_out_path[ 270 ];int press_level = 6;// ---------------------------------------------------int Press( char *p_in, char *p_out, int lv ){ strcpy( p_in_path, p_in ); strcpy( p_out_path, p_out ); press_level = lv; if ( OpenIOFile() == 0 ) { printf("OPEN FILE ERROR ! \n"); return 0; } if ( PressPart() == 0 ) { printf("PRESS ERROR ! \n"); return 0; } CloseIOFile(); return 1;}// ---------------------------------------------------int DePress( char *p_in, char *p_out ){ strcpy( p_in_path, p_in ); strcpy( p_out_path, p_out ); if ( OpenIOFile() == 0 ) { printf("OPEN FILE ERROR !"); return 0; } if ( DePressPart() == 0 ) { printf("DEPRESS ERROR !"); return 0; } CloseIOFile(); return 1;}// ---------------------------------------------------int OpenIOFile(){ p_in_file = fopen( p_in_path, "rb" ); if ( p_in_file == 0 ) {return 0;} p_in_buf = (unsigned char *)malloc( in_buf_size ); if ( p_in_buf == 0 ) { CloseIOFile(); return 0; } p_out_file = fopen( p_out_path, "wb" ); if ( p_out_file == 0 ) { CloseIOFile(); return 0; } p_out_buf = (unsigned char *)malloc( out_buf_size ); if ( p_out_buf == 0 ){ CloseIOFile(); return 0; } return 1;}// ---------------------------------------------------void CloseIOFile(){ if ( p_in_file ) fclose( p_in_file ); if ( p_out_file ) fclose( p_out_file ); if ( p_in_buf ) free( p_in_buf ); if ( p_out_buf ) free( p_out_buf ); return;}// ---------------------------------------------------int PressPart() { unsigned int count, flush, status; z.zalloc = Z_NULL; z.zfree = Z_NULL; z.opaque = Z_NULL; z.avail_in = 0; z.next_out = p_out_buf; z.avail_out = out_buf_size;if ( deflateInit( &z, press_level ) != Z_OK ) { printf( z.msg ); return 0; } flush = Z_NO_FLUSH; while (1) { if ( z.avail_in == 0 ) { z.next_in = p_in_buf; z.avail_in = fread( p_in_buf, 1, in_buf_size, p_in_file ); if ( z.avail_in < in_buf_size ) flush = Z_FINISH; } status = deflate( &z, flush ); if ( status == Z_STREAM_END ) break; if ( status != Z_OK ) { printf( z.msg ); return 0; } if ( z.avail_out == 0 ) { if ( fwrite( p_out_buf, 1, out_buf_size, p_out_file ) != out_buf_size ) { printf( z.msg ); return 0; } z.next_out = p_out_buf; z.avail_out = out_buf_size; } } if ( ( count = out_buf_size - z.avail_out ) != 0 ) { if ( fwrite( p_out_buf, 1, count, p_out_file ) != count ) { printf( z.msg ); return 0; } } if ( deflateEnd( &z ) != Z_OK ) { printf( z.msg ); return 0; }return 1;}// ---------------------------------------------------int DePressPart(){ unsigned int count, status; z.zalloc = Z_NULL; z.zfree = Z_NULL; z.opaque = Z_NULL; z.next_in = Z_NULL; z.avail_in = 0; if ( inflateInit( &z ) != Z_OK ) { printf( z.msg ); return 0; } z.next_out = p_out_buf; z.avail_out = out_buf_size; status = Z_OK; while ( status != Z_STREAM_END ) { if ( z.avail_in == 0 ) { z.next_in = p_in_buf; z.avail_in = fread( p_in_buf, 1, in_buf_size, p_in_file ); } status = inflate( &z, Z_NO_FLUSH ); if ( status == Z_STREAM_END ) break; if ( status != Z_OK ) { printf( z.msg ); return 0; } if ( z.avail_out == 0) { if ( fwrite( p_out_buf, 1, out_buf_size, p_out_file ) != out_buf_size ) { printf( z.msg ); return 0; } z.next_out = p_out_buf; z.avail_out = out_buf_size; } } if ( ( count = out_buf_size - z.avail_out ) != 0 ) { if ( fwrite( p_out_buf, 1, count, p_out_file ) != count ) { printf( z.msg ); return 0; } } if ( inflateEnd( &z ) != Z_OK ) { printf( z.msg ); return 0; } return 1;}--------------------------------------------------[ easy_zlib.c ]※ そりと、zlibを使うには、DLLファイル ( zlib1.dll )と LIBファイル ( zdll.lib ) 、この二つのファイルが必要れす。 というわけで、この二つは必ずプロジェクトのフォルダの中に コピーしておいて下しゃいね。 そうしないと、未定義エラーが山ほど出ましゅ。■ zlib 公式サイトhttp://www.gzip.org/zlib/■ zlib 入門 ( ここにあったサンプルを改造させてもらいましゅた。 )http://oku.edu.mie-u.ac.jp/~okumura/compression/zlib.html\/\/\/\/\/\/\/\/\/\/\/\/\/\/「圧縮」といえば少し前に、ある板のネタでこんなのがありましゅた。『 txtファイルを 0 byteにまで 圧縮する 方法 ! 』 Σ(゜д ゜;) ( A : ファイルの内容を「ファイル名」に移す! )
2005.06.24
コメント(0)
セロトニンという脳内物質の分泌が少なくなることが原因のようれす。・夜も寝ないで昼寝して日光に当たらない。・緊張したままで二時間半以上ねばる。具体的には、ゲームの早解きとかゲームの早解きなどが良くないようれす。早解きは損れす。挙句どうでも良さそうなゲームにまで手を出してしまうことになります。こりを俗に「ゲーム中毒」といいましゅ。ちなみにこりが、どうでもいいゲームとその信奉者が増える一番の原因れす。■ 改善する方法「リズミカルな運動」を、毎日20~30分間ひたすら続ける。 具体的には、「ガムをかむ」「自転車」「歩く」「ミミズの体操」ソースはこの記事れす。↓http://allabout.co.jp/health/stressmanage/closeup/CU20050605A/index.htm?FM=rankd&NLV=AL000002-270個人的にオススメなのは、こりも定番れすが、夕食の前に、20分間以上、足ふみをする運動れす。すぐそばに時計かテレビがあると退屈しなくていいれすね。あるある大辞典によりば、体脂肪を燃焼させるにはゆっくりで大きめの動きが効果的なんだそうれす。れすから、うでを大きくふって、腰も少しまわしながら、同時にひざをおなかの高さまであげる、こりを太極拳みたいにゆーっくりとした速度で繰り替えすんれす。そしてお風呂に入ってからご飯を食べてテレビをみて寝るんれす。
2005.06.23
コメント(0)
#include <stdio.h>// フルパスを生成する関数void CreateFilePath( char *p_path, char *p_name, int n, char *p_type, char *p_r ){char p_n[4];sprintf( p_n, "%3.3u", n );strcat( p_r , p_path ); // パスを連結strcat( p_r , p_name ); // 名前を連結strcat( p_r , p_n ); // 番号を連結strcat( p_r , p_type ); // 拡張子を連結}int main(){char p_r[ MAX_PATH ] =""; // ( ※ 文字列は 必ず "" で初期化する )CreateFilePass( "C:\\GAME\\data\\", "message_", 1, ".txt", p_r ); // 呼び出すprintf( p_r ); // ちゃんとくっ付いてるか表示return 0;}帰ったらアメリカンチェリーが届いてました。アメリカで農機具店をしてる親戚の人かられした。せっかくアップしたわが国の自給率があっという間に相殺されたとです。
2005.06.21
コメント(0)
「すいか」 ( 千葉県産 糖度12 350円 )シャキシャキれしたが甘かったのは真ん中辺だけで皮の付近は味か薄かったれす。久しぶりに歯ごたえのあるスイカが食べれたと喜んでたんれすが、そりは私ゃだけれした。カタすぎる、とか、まだ早いとか言われました。「とまと」( 兵庫県産 糖度推定20 価格不明 )甘いれす。こりは大好評れした。フーデニングの青果物れす。//-------------------------------------------------------★変数int x = 1 , y = 2 , z = 3; // int型の変数 ( 値は整数値 )//-------------------------------------------------------★変数の配列int a[3]; // int型の配列変数 ( 値は整数値 )a[0] = x;a[1] = y;a[2] = z; // *( a + 2 ) == a[2] //-------------------------------------------------------★ポインタの配列int *p_a[3]; // int型の配列ポインタ( 値は変数のアドレス )p_a[0] = a; // == &a[0]p_a[1] = a + 1; // == &a[1]p_a[2] = a + 2; // == &a[2]// *( p_a + 2 ) == p_a[2]//-------------------------------------------------------★ポインタポインタの配列int **pp_a[3]; // int型の配列ポインタポインタ( 値はポインタのアドレス )pp_a[0] = p_a; // == &p_a[0]pp_a[1] = p_a + 1; // == &p_a[1]pp_a[2] = p_a + 2; // == &p_a[2]// *( pp_a + 2 ) == pp_a[2]//-------------------------------------------------------
2005.06.19
コメント(0)
母の日よりも高くつきそうだとです。
2005.06.19
コメント(0)
#include <stdio.h>#include <windows.h>#pragma comment( lib , "winmm.lib" )unsigned long a[10000];void main(){unsigned long j;unsigned long i;timeBeginPeriod(1); // タイマー精度を1msに設定unsigned long now_t = 0; // 終了時間unsigned long old_t = timeGetTime(); // 開始時間を記録 for ( j = 10000; j>0; --j ){for ( i = 10000; i>0; --i ){*( a + i ) = i;}}now_t = timeGetTime(); // 終了時間を記録printf( "今回の処理時間は、[ %d ] ミリ秒でした。" , now_t - old_t );}
2005.06.17
コメント(0)
クラスについての話をまた進めてゆくんれすが、その前に、今日は「こりを知らないで読んでもつまんなーいだろーな」という部分についてちょっとだけ説明しておきましゅ。う、ではまず最初に、C++の標準機能、テンプレートれす。■■■■■■■■■■■■■■■■■■■■■■WWWWWWWWWWWWW[?][?][?]WWWWWWWWW テンプレート 田田田 田田 (V)■■ (V) ___ __》■■MMM├┤MMMMM├┤MMMMM├┤MM ■■■■■■■■■■■■■■■■■■■■■■■■( @_@) p=q ∠_NuNuNuNuNu...Poyooon..Poyoyoyoyoooon...)[ temp_test.h ]-----------------------------------template<typename T> // テンプレートクラスの宣言に必要class NANDEMOYA{ private: // クラス外では使えないメンバ T nandemo_data; // 入れ物はこれ一つ public:// クラス外でも使えるメンバ // 「なんでもデータ」を得る唯一の手段 T Get() { return nandemo_data; } // 「なんでもデータ」を変更する唯一の手段 void Set( T );};// クラスの外で関数定義してみた例template<typename T> // クラスのと同じれしゅ。void NANDEMOYA<T>::Set( T p1 ){ nandemo_data = p1; }-----------------------------------[ temp_test.h ][ main.cpp ]-----------------------------------#include <stdio.h>#include "c:\console_test\temp_test.h"#include <iostream>using namespace std;int main(){ // 「 T 」の部分がintになるNANDEMOYAクラスの // インスタンス「 cloud 」を宣言NANDEMOYA<int> cloud;// int型にしてるので、適当な整数値を指定して Set()メソッド を呼ぶcloud.Set( 9999 );// 次に、「なんでも値」に 値がちゃんとセットさりてるか表示for ( short i=0; i
2005.06.09
コメント(0)
どどどどどぅぶつがhttp://daisyuugou.opendoor.co.jp/pc/game/doubutsusensi.html
2005.06.08
コメント(0)
staticデータ + static関数 != singleton ( モララ~の書 第六章より )似たようなコードを発見しましゅたので前述のBMPクラスに直してかいてみましゅた。//--------------------------------------------------------------class BMP{private:static BMP *p_bmp; // クラスの外からは直接アクセス出来ない。BMP( ); // コンストラクタ封じBMP( const BMP& ); // コピーコンストラクタ封じ~BMP( ); // デストラクタ封じ//--------------------------------------------------------------public://--------------------------------------------------------------// BMPクラスのインスタンスは、この関数内でのみ// 生成さりる。( BMP *p_b = BMP::Create(); )static BMP* Create( ) {if ( !p_bmp ) p_bmp = new BMP; // ポインタが空っぽなら作れるreturn p_bmp; // ポインタを返す}//--------------------------------------------------------------static void Delete( ){// ポインタが使われてるなら開放できるif ( p_bmp ) { delete p_bmp; p_bmp = 0; } }//--------------------------------------------------------------static BMP* GetP(){ return p_bmp; } // 駄目れしゅかね//--------------------------------------------------------------};//--------------------------------------------------------------BMP* BMP::p_bmp = 0; // クラスの外で初期化//--------------------------------------------------------------ちなみに、私ゃのBMPクラスは、インスタンス毎の固有データとそりを操作する、つまりDIBイメージに描画するメソッドのみの構成れす。シングルトンに似ている部分、つまりBMPインスタンスを大域で使える機能は、全てBMP_Tに集め、そりプラス、カレントデータとそりを変更・参照するメソッドも含めた描画全般を管制するクラスとしての機能を持たせてみましゅた。初期描画ルーチンBMP_T::Make();、フリップ描画ルーチンBMP_T::Redraw();描画は全てこのBMP_Tクラスのメンバ関数内で行われましゅから、カレントデータにも直接アクセスできるんれしゅ。こうしてみるとなんだかすごく簡単そうな仕組みれすよね。れすがまだれす、この話はまだまだ続くんれしゅ。そもそもシングルトンて何のために使うんれしょうね。
2005.06.06
コメント(0)
// どのキーが押されているのかを格納typedef struct tagKEY_STATE_Q{BYTE mouse;BYTE key1;BYTE key2;}KEY_STATE_Q;// クライアントエリアの左上座標、カーソル位置、作業エリアの範囲を格納typedef struct tagWIN_STATE_Q{POINT CurPos;POINT CltPos;RECT WorkArea;}WIN_STATE_Q;// グローバル変数れす。WIN_STATE_Q win_q;KEY_STATE_Q key_q;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++Win Main Proc++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++LRESULT CALLBACK MainWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam){switch( msg ){ case WM_MOVE: ::win_q.CltPos.x = lParam & 0xffff; ::win_q.CltPos.y = ( lParam >> 16 ) & 0xffff; break;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ case WM_MOUSEMOVE: ::win_q.CurPos.x = ( lParam & 0xffff ); ::win_q.CurPos.y = ( ( lParam >> 16 ) & 0xffff ); break;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ case 0x0202: // WM_LBUTTONUP: ::key_q.mouse ^= 1; BMP::Param( 10, 10, "L", 0 );break;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ case 0x0205: // WM_RBUTTONUP:::key_q.mouse ^= 4; BMP::Param( 10, 10, "R", 0 ); break;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ case 0x0201: // WM_LBUTTONDOWN ::key_q.mouse |= 1; BMP::Param( 10, 10, "L", 1 ); break;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ case 0x0204: // WM_RBUTTONDOWN ::key_q.mouse |= 4; BMP::Param( 10, 10, "R", 1 ); break;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++case WM_KEYDOWN: switch( wParam ){case 0x26: // UP::key_q.key1 |= 1; BMP::Param( 10, 10, "UP", 1 );break;case 0x28: // DOWN::key_q.key1 |= 2; BMP::Param( 10, 10, "DOWN", 1 );break;case 0x25: // LEFT::key_q.key1 |= 4; BMP::Param( 10, 10, "LEFT", 1 );break;case 0x27: // RIGHT::key_q.key1 |= 8; BMP::Param( 10, 10, "RIGHT", 1 );break;case 0x20: // SPACE::key_q.key1 |= 16; BMP::Param( 10, 10, "SPACE", 1 );break;case 0x0D: // ENTER::key_q.key1 |= 32; BMP::Param( 10, 10, "ENTER", 1 );break;case 0x1B: // ESC::key_q.key1 |= 64; BMP::Param( 10, 10, "ESC", 1 );break;case 0x10: // SHIFT::key_q.key1 |= 128; BMP::Param( 10, 10, "SHIFT", 1 );break;case 0x51: // Q::key_q.key2 |= 128; BMP::Param( 10, 10, "Q", 1 );break;case 0x57: // W::key_q.key2 |= 64; BMP::Param( 10, 10, "W", 1 );break;case 0x41: // A::key_q.key2 |= 32; BMP::Param( 10, 10, "A", 1 );break;case 0x53: // S::key_q.key2 |= 16; BMP::Param( 10, 10, "S", 1 );break;case 0x5A: // Z::key_q.key2 |= 8; BMP::Param( 10, 10, "Z", 1 );break;case 0x58: // X::key_q.key2 |= 4; BMP::Param( 10, 10, "X", 1 );break;case 0x43: // C::key_q.key2 |= 2; BMP::Param( 10, 10, "C", 1 );break;case 0x44: // D::key_q.key2 |= 1; BMP::Param( 10, 10, "D", 1 );break;} break;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++case WM_KEYUP: switch( wParam ){case 0x26: // UP::key_q.key1 ^= 1; BMP::Param( 10, 10, "UP", 0 );break;case 0x28: // DOWN::key_q.key1 ^= 2; BMP::Param( 10, 10, "DOWN", 0 );break;case 0x25: // LEFT::key_q.key1 ^= 4; BMP::Param( 10, 10, "LEFT", 0 );break;case 0x27: // RIGHT::key_q.key1 ^= 8; BMP::Param( 10, 10, "RIGHT", 0 );break;case 0x20: // SPACE::key_q.key1 ^= 16; BMP::Param( 10, 10, "SPACE", 0 );break;case 0x0D: // ENTER::key_q.key1 ^= 32; BMP::Param( 10, 10, "ENTER", 0 );break;case 0x1B: // ESC::key_q.key1 ^= 64; BMP::Param( 10, 10, "ESC", 0 );break;case 0x10:// SHIFT::key_q.key1 ^= 128; BMP::Param( 10, 10, "SHIFT", 0 );break;case 0x51: // Q::key_q.key2 ^= 128; BMP::Param( 10, 10, "Q", 0 );break;case 0x57: // W::key_q.key2 ^= 64; BMP::Param( 10, 10, "W", 0 );break;case 0x41: // A::key_q.key2 ^= 32; BMP::Param( 10, 10, "A", 0 );break;case 0x53: // S::key_q.key2 ^= 16; BMP::Param( 10, 10, "S", 0 );break;case 0x5A: // Z::key_q.key2 ^= 8; BMP::Param( 10, 10, "Z", 0 );break;case 0x58: // X::key_q.key2 ^= 4; BMP::Param( 10, 10, "X", 0 );break;case 0x43: // C::key_q.key2 ^= 2; BMP::Param( 10, 10, "C", 0 );break;case 0x44: // D::key_q.key2 ^= 1; BMP::Param( 10, 10, "D", 0 );break;} break; } // switch( msg ) return DefWindowProc( hwnd, msg, wParam, lParam );} // WinMainProc^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^そりと、格納したフラグ値を、他で参照する方法れすが、こうします。if ( ::key_q.mouse & 1 ){ /* 左クリックさりてる時の処理 */ }^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^void BMP::Param( short x, short y, LPCTSTR p_label, long param ){ TCHAR buf[46]; wsprintf( buf , TEXT("★ %s = [ %10u ]") , p_label, param ); TextOut( Q[ CANV ].hMDC, x, y, buf, lstrlen( p_label ) + 20 );}^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2005.06.04
コメント(0)
間違ってたのは amari の部分れす。1ラインのバイト数に、補正値を加算している所れす。4で割ったamariを加算してしまってますが、ここで加算する値は、正しくは ( 4 - amari ) れす。そりと「エラー対策」の部分は全て省略してあります。▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽C R E A T E△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△void BMP::Create( short n, long w, long h, short bit ){if ( Q[n].Use ) Delete( n );Q[n].Use = 1;Q[n].Quad = 0; short QuadSz=0 , InfoSz = 40;if ( bit == 8 ){ Q[n].Quad = 256; QuadSz = 1024; InfoSz += 0x400; }Q[n].Byte = bit >> 3;Q[n].W = w;Q[n].H = h;Q[n].Line = Q[n].Byte * w;short amari = Q[n].Line % 4;if ( amari ) Q[n].Line += 4 - amari;Q[n].ImgSz = Q[n].Line * h;long HeapSz = InfoSz + Q[n].ImgSz;Q[n].hHEAP = HeapCreate( 0 , HeapSz , 0 );Q[n].p_bmi = ( BITMAPINFO * )HeapAlloc(Q[n].hHEAP, HEAP_ZERO_MEMORY, HeapSz );Q[n].p_bmi->bmiHeader.biSize = 40;Q[n].p_bmi->bmiHeader.biWidth = w;Q[n].p_bmi->bmiHeader.biHeight = h;Q[n].p_bmi->bmiHeader.biPlanes = 1;Q[n].p_bmi->bmiHeader.biBitCount = bit;Q[n].p_bmi->bmiHeader.biClrUsed = Q[n].Quad;Q[n].p_bmi->bmiHeader.biCompression = BI_RGB;Q[n].p_img = ( BYTE * )( Q[n].p_bmi + InfoSz );HDC hWDC = GetDC( ::hWIN[0] );Q[n].hMDC = CreateCompatibleDC( hWDC );if ( bit == 8 ) CreatePAL( n );Q[n].hDIB = CreateDIBSection( Q[n].hMDC, Q[n].p_bmi,DIB_RGB_COLORS, (void **)&Q[n].p_img, 0, 0 );SelectObject( Q[n].hMDC, Q[n].hDIB );if ( n ) FullCopy( n, 0 );ReleaseDC( ::hWIN[0] , hWDC );}△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△Create P A L▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽BOOL BMP::CreatePAL( short n ){LOGPALETTE *p_logpal = ( LOGPALETTE * )malloc( 0x408 );for ( short i=0; ipalPalEntry[i].peRed = Q[n].p_bmi->bmiColors[i].rgbRed;p_logpal->palPalEntry[i].peGreen = Q[n].p_bmi->bmiColors[i].rgbGreen;p_logpal->palPalEntry[i].peBlue = Q[n].p_bmi->bmiColors[i].rgbBlue;p_logpal->palPalEntry[i].peFlags = 0;}p_logpal->palVersion = 0x300;p_logpal->palNumEntries = 256;Q[n].hPAL = CreatePalette( p_logpal );free( p_logpal );return TRUE;}△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△L O A D▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽BOOL BMP::Load( short n, LPTSTR p_FilePass ){if ( Q[n].Use ) Delete( n );Q[n].Use = 1;DWORD Result;HANDLE hF = CreateFile( p_FilePass, GENERIC_READ, 0, 0, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL, 0 );if ( !hF ) return FALSE;long FileSz = GetFileSize( hF, 0 );BITMAPFILEHEADER fh;ReadFile( hF, &fh, 14, &Result, 0 );if ( fh.bfType != 0x4D42 ) return FALSE;short ImgOff = fh.bfOffBits;Q[n].Quad = ( ImgOff - 54 ) >> 2;short QuadSz = ( Q[n].Quad bmiHeader.biWidth;Q[n].H = Q[n].p_bmi->bmiHeader.biHeight;Q[n].Byte = Q[n].p_bmi->bmiHeader.biBitCount >> 3;Q[n].Line = Q[n].Byte * Q[n].W;short amari = Q[n].Line % 4;if ( amari ) Q[n].Line += 4 - amari;Q[n].ImgSz = Q[n].Line * Q[n].H;Q[n].p_img = p_dummy + 40 + QuadSz;HDC hWDC = GetDC( ::hWIN[0] );Q[n].hMDC = CreateCompatibleDC( hWDC );if ( Q[n].Quad ) CreatePAL( n );Q[n].hDIB = CreateDIBSection( Q[n].hMDC, Q[n].p_bmi,DIB_RGB_COLORS, (void **)&Q[n].p_img, 0, 0 );ReadFile( hF, Q[n].p_img, Q[n].ImgSz, &Result, 0 );CloseHandle( hF );SelectObject( Q[n].hMDC , Q[n].hDIB );if ( n ) FullCopy( n, 0 );ReleaseDC( ::hWIN[0], hWDC );return TRUE;}▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽S A V E△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△▽△BOOL BMP::Save( short n, LPTSTR p_FilePass ){if ( !Q[n].Use ) return FALSE;BITMAPFILEHEADER bmfh;ZeroMemory( &bmfh , 14 );short ImgOff = ( Q[n].Quad
2005.06.02
コメント(0)
彼らには悪をたたく権利があるのれす。れすからどんなに酷いたたきかたをしても許されるのれす。要は権利があるかないかだけなのれす。あらゆる行為は場合によってはアリなんれす。ちなみにこの権利はペケ字軍異端審問委員会からもらったものれす。
2005.05.30
コメント(0)
=========================================================== メッセージボックスを開いて 変数の値を確認する=========================================================== void Info( LPTSTR p_label , long param ) { TCHAR buf[64]; wsprintf( buf , TEXT(" %s = [ %u ] \n") , p_label, param ); MessageBox( 0, buf, TEXT(" Infomation "), MB_OK|MB_ICONINFORMATION ); }________________________________________________________________________________________________________
2005.05.27
コメント(0)
一番上のお皿にたまった水が水路を伝って少しずつ下のお皿へ流れ込んでいる。水路の周りにはお店や民家が並んでいて通行人は裸足で水路の上を歩いている。水路の水かさは5センチくらい。お皿とお皿の間には小さな滝があって階段として整備さりてる。その周辺は緑地帯になっていて渓流みたいになっている。
2005.05.22
コメント(0)
ほにゃららの野望を世界規模でやってみたいれすね。ブリテン島エジプトアラビア半島ヨーロッパアジアシベリア日本一代でユーラシア大陸を完全制圧するんれす。
2005.05.21
コメント(0)
おめでとうありがとう
2005.05.11
コメント(0)
★「 マルチスレッド 」 1プロセスの処理を「スレッド」という 単位に分割して並列処理させましゅ。【作り方】まず最初に、[ プロジェクト ]→[ 設定 ]→[ C++ ]→[ コード生成 ]の「 使用するランタイムライブラリ 」のところを、 [ マルチスレッド/デバッグ ] に変更しておきましゅ。そして次のコードを打ち込んでくだしゃい。(コピペでもいい)\_/ \_/ \_/ \_/ \_// \_/ \_/ \_/ \_/ \\_/ \_/ \_/ \_/ \_// \_/ \_/ \_/ \_/ \#include "windows.h"#include "process.h"#include "iostream"using namespace std;#define MANY 2unsigned __stdcall ThreA( void *);unsigned __stdcall ThreB( void *);CRITICAL_SECTION semtex;\_/ \_/ \_/ \_/ \_// \_/ \_/ \_/ \_/ \\_/ \_/ \_/ \_/ \_// \_/ \_/ \_/ \_/ \int main(){ InitializeCriticalSection( &semtex ); unsigned id[ MANY ]; HANDLE h_th[ MANY ]; h_th[0] = (HANDLE)_beginthreadex( 0, 0, ThreA, 0, CREATE_SUSPENDED, &id[0] ); h_th[1] = (HANDLE)_beginthreadex( 0, 0, ThreB, 0, CREATE_SUSPENDED, &id[1] ); ResumeThread( h_th[0] ); ResumeThread( h_th[1] ); WaitForMultipleObjects( MANY, h_th, TRUE, INFINITE );CloseHandle( h_th[0] );CloseHandle( h_th[1] );DeleteCriticalSection( &semtex );return 0;}\_/ \_/ \_/ \_/ \_// \_/ \_/ \_/ \_/ \\_/ \_/ \_/ \_/ \_// \_/ \_/ \_/ \_/ \unsigned __stdcall ThreA( void *p1 ){ while(1) { EnterCriticalSection( &semtex ); _sleep( 1000 ); cout
2005.05.09
コメント(0)
★「 ダイナミックリンクライブラリ 」 【 作り方 】 「 VisualStudio 」を使ってる人は、 [ ファイル ]→「 新規プロジェクトの作成 」 →「 Dynamic Linc Library 」を選択 ( プロジェクト名は「dll_test」) →「 空っぽのまま 」を選択 (「DllMain.h」と「DllMain.cpp」を作成・追加 )[ DllMain.h ]--------------------------------- #include "stdio.h" #ifndef _DLL_TEST_MAIN_H_ #define _DLL_TEST_MAIN_H_ #ifdef _EXPORTING #define MAJISKA __declspec(dllexport) #else #define MAJISKA __declspec(dllimport) #endif #ifdef __cplusplus extern "C"{ #endif MAJISKA int __stdcall Tasu( int , int ); MAJISKA int __stdcall Hiku( int , int ); #ifdef __cplusplus } #endif #endif---------------------------------[ DllMain.h ][ DllMain.cpp ]------------------------------- #include "c:\dll_test\DllMain.h" BOOL __stdcall DllMain( HINSTANCE hModule, DWORD fdwReason, PVOID pvReserved ) { return TRUE; } int __stdcall Tasu( int p1 , int p2 ) { return ( p1 + p2 ); } int __stdcall Hiku( int p1 , int p2 ) { return ( p1 - p2 ); }-------------------------------[ DllMain.cpp ] あとはこりをビルドすりば完成れす。________________________________________________【 使い方 】 まず、DLL側の「 DEBUG 」フォルダにある 「 dll_test.lib 」というファイルを 使う側のフォルダにコピーしてくらしゃい。 次に、「 dll_test.dll 」というファイルを、 使う側の「 DEBUG 」フォルダにコピーしましゅ。 そりから、使う側のコードにこう書きます。↓Σ.)-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/---[ main.cpp ]----------------------------------- #include "stdio.h" #include "iostream" #pragma comment( lib , "dll_test.lib" ) #include "c:\dll_test\DllMain.h" using namespace std; int main( ) { int wa = Tasu( 1 , 1 ); int sa = Hiku( 1 , 1 ); cout
2005.05.05
コメント(0)
[ GETG.h ]―――――――――――― GetG(void); ――――――――――――[ GETG.h ] [ GETG.cpp ]――――――――――― #include "c:\console_test\GETG.h" extern char g; extern void ViewG( char* ); void GetG(void) { char a = ::g; ::ViewG( &a ); } ―――――――――――[ GETG.cpp ] ############################## [ main.cpp ]――――――――――― #include "iostream"; #include "c:\console_test\GETG.h" using namespace std; char g = 'A'; // エェェ('A' )/ void ViewG( char* ); int main(){ GetG(); return 0; } void ViewG( char* p1 ) { cout 1)*(imax+1); ( 何の公式? 簡単れすね。 ) ____________________________________________________
2005.05.01
コメント(0)
そういえば・・数ヶ月前にチャッカリーナシッカリーナのスクラッチで一日に10回くらいスクラッチしてた時に一度だけ当たったことがあったような無かったような・・。
2005.04.30
コメント(0)
今日は忙しいし、あんまり書くこともないので、うーん 便利?かも知れないWindowsAPIを一つ紹介しましゅ。// 「クラス名」と「ウィンドウ名」から// 「ウィンドゥハンドル」を取得する// 親子共に「0」指定だと、デスクトップ上の全ウィンドゥを検索 HWND h_OyaW; // この親の子を探す。 HWND h_KoW; // Zオーダーでこの子の次から検索(孫ではダメ)// 終端文字(\0)までが検索キーワード LPCTSTR p_ClsName; LPCTSTR p_WinName; HWND h_Win = FindWindowEx( h_OyaW , h_KoW , p_ClsName, p_WinName );( ※C++ではポインタは必ず「0」で初期化する。)------------------------------------------------------------------[ 重複インクルード防止についての追記 ]付けて無かったんれすが、こりは付けた方がいいれすよ。//[ usagi.h ] ------------------------#ifndef _USAGI_H_#define _USAGI_H_ class USAGI{};#endif//-------------------------[ usagi.h ]そりとstatic quest の続きれすがこりはただ今準備中れす。
2005.04.26
コメント(0)
こべあべれすが、まずは基本かられす。---------------------------------------------------------------★直線運動 時間の経過と共に位置は移動していく。 ( 位置は軸(x,y,z)ごとに計算 , 速度単位は(m/s) , 加速度単位は(m/s~2) ) その時間の位置 = 初期位置 + ( 初速度 × 時間 ) + ( ( 1/2 ) × 加速度 × 時間の2乗 ) その時間の速度 = 初速度 + ( 加速度 × 時間 )---------------------------------------------------------------★回転運動 回転運動での「位置」は「角度」れす。(同様に(x,y,z)別々に計算) ( 180度 = π × 1ラジアン , 1ラジアン = ( 角度 × 2π ) / 360 , 角初速度単位は(ラジアン/秒) , 角加速度単位は(ラジアン/秒~2) )その時間の角度 = 初期角度 + ( 角初速度 × 時間 ) + ( ( 1/2 ) × 角加速度 × 時間の2乗 )その時間の角速度 = 角初速度 + ( 角加速度 × 時間 )その時間の角速度の2乗 = 角初速度の2乗 + ( 2 × 角加速度 × ( その時間の角度 - 初期角度 ) ---------------------------------------------------------------★ニュートンの運動法則(大発明ユデダコユデダコ)「第一法則」止まってる物体は、力が加えられない限り止まったまま、 動いてる物体は一定の速さで直線的に動きつづける。 (地球上では重力と摩擦力が常にかかってるので実感が薄い) 「第二法則」物体にかかる全ての「力」の合計 = ( 物体の重さ × 加速度 )「第三法則」「作用・反作用」の法則。 物体Aが物体Bに力をかけた時、 物体Bは物体Aに対して逆方向の「同じ力」をはね返す。 (「人間」が「床」に対して力(体重)をかけると、 「床」は、「反発する同じ大きさの力」を「人間」に返す。 こりがあるから「人間」は地面に沈みこまない。) ( ※ (x,y,z)それぞれ1つの軸にかけられた「力」は、 他の軸の運動には影響しない。)---------------------------------------------------------------★周期運動 (「振り子」や「バネ」などの繰り返される運動) 「繰り返し」の事を「振動」という。 角振動数 = ( 2π / 運動の周期 ) × 時間 その時間での位置 = 運動の中心点 + 運動の振幅 × sin( 角振動数 + 位相のズレ ) 時間が進むにつれて「振幅」(その時間での位置-運動の中心点) が、短くなっていく現象は、 ( 運動の振幅 × sin( 角振動数 + 位相のズレ ) ) / 時間 (時間が1以下の時は除算しない。また、 振幅の現象が速い場合は、時間の2乗で除算していく様にする。)---------------------------------------------------------------★重力 ( 1G≒6.67259×10~-11 , オラは100Gで修行中 ) 落下する物体にかかる重力の大きさ = ( 1G × 地球の質量 × 物体の質量 ) / 地面までの距離の2乗 = 物体の質量×物体の加速度 (ニュートンの第三法則れす) 物体の加速度 = ( 1G × 地球の質量 ) / 地面までの距離の2乗 この「重力加速度」と、「直線運動」の方程式を使えば 落下する物体の運動の軌跡を描画することができます。 (※重力加速度の方向は地球の中心を向いてます。 なので、Z軸の運動成分のみ考えます。 「重力」を再現する場合は、この「重力加速度」を y軸の直線方程式に使うだけで求まります。 ちなみに「地球の重力加速度」は、約9.80665(m/s~2) )------------------------------------------------------------★摩擦力(「グリップ力」がないとタイヤは空回り、車は進めない) 「摩擦の向き」は「進行方向」と正反対に働く (地面を「進行方向」とは逆向きに蹴ることで 地面から「反発する力」が返され、前進できる。) 停止してる物体を滑らせるに必要な力 = a ( a = 静止摩擦係数 × 地面が物体に及ぼす力 ) 滑ってる物体を滑らせ続けるのに必要な力 = b ( b = 運動摩擦係数 × 地面が物体に及ぼす力 ) a > b 「静止摩擦係数」「運動摩擦係数」 木材と木材 0.4 0.2 氷と氷 0.1 0.03 金属と金属 0.15 0.07 タイヤと路面 1.0 0.8 滑らせ始める時の力 = 垂直方向の力(地面に沈み込まないようにする力) -----------------------------------------
2005.04.25
コメント(0)
今年最初のチップスれす。心して読んでくらさい。//[usagi.h]-------------------------------------- class USAGI{ static int m_data; public: static int func(void); };//--------------------------------------[usagi.h]//[usagi.cpp]-----------------------------------#include "c:\console_test\usagi.h" int USAGI::m_data; int USAGI::func(void){m_data =1; return m_data;}//------------------------------------[usagi.cpp]//***********************************************//[main.cpp]-------------------------------------#include "stdio.h"#include "c:\console_test\usagi.h" int main(void){ int osara = USAGI::func(); printf("%d\n",osara); return 0; }//-------------------------------------[main.cpp]//***********************************************
2005.04.23
コメント(0)
で、忘れて何をしていたのかというと、こりが・・ノートPCで遊んでました・・。いつものことれすがヤフーゲームの通信対戦れす。うさぎと亀のうざきとは私のことれす。あとそりともう一つ、きのうはVisualStudio 6.0をインストールしてたんれすが、ビルド出来ない。。エラーの内容は、「SHSQL.dll」というファイルがインストールされてない・・ということれした。例によってMSDN(開発者向け情報サイト)で原因をセルフチェック。(MSの製品サポートは全て有償。)でそりでわかったんれすが、原因は、以前に使ってたV4.0のファイルとレジストリで、こりらが残っていた為に、6.0のインストールが失敗してたんれすね。(.NETも入ってた。。)コンパイラのエラーといえば、有名なものに「cl.exeのエラー」などがありますが、(「プリコンパイル済みヘッダを使わない」で解決)そりからリンクエラーもよく出ますよね、(そんなこと無いれすか?)れすが、今回のようなケースはあまり無いのか、サーチしてみても、紹介してるページが見つかりませんれした。1. まず、VCに関連したファイルと レジストリを全て消去します。 (詳細はMSDNでサーチ)2. そしてセーフモードで起動する。3. 邪魔になるタスクを全て閉じておく。、4. 余計なサーバ・サービスも全て停止させておく。 (Windows2000のみ。そういえば無線も 買ったときに一度通信しただけで 全然使ってないれす。そりでも確認。)5. インストールする。
2005.04.19
コメント(0)
全42件 (42件中 1-42件目)
1
![]()

