約 1,920,707 件
https://w.atwiki.jp/opengl/pages/196.html
ツリービューを表示します。 階層構造を表現するのに便利です。 resource.h #define IDR_MENU1 100 #define ID_EXIT 101 #define ID_TEST 102 #define ID_A 103 #define ID_B 104 #define ID_Menu 105 #define ID_Whats 106 #define ID_Help 107 #define ID_STATUS 108 #define ID_TREEVIEW 1000 menu.rc #include resource.h IDR_MENU1 MENU BEGIN POPUP File BEGIN MENUITEM Exit , ID_EXIT END POPUP Test BEGIN MENUITEM てすつ , ID_TEST END POPUP Option BEGIN MENUITEM A , ID_A MENUITEM B , ID_B MENUITEM めにゅ~ , ID_Menu MENUITEM whats? , ID_Whats END MENUITEM ヘルプ , ID_Help END main.cpp #pragma comment(linker, /SUBSYSTEM WINDOWS /ENTRY mainCRTStartup ) #pragma comment(lib, comctl32.lib ) #include GL/freeglut/freeglut.h #include resource.h #include commctrl.h //CreateStatusWindow()のために必要 //FreeGlutのウインドウプロシージャを置き換える為の変数 WNDPROC WndProc=NULL; //元のウィンドウプロシージャ HWND hWnd2=NULL; //ウィンドウハンドル HMENU hMenu=NULL; //メニュー HWND hStatusbar; // ステータスバーのハンドル HWND hProgbar; //プログレスバーのハンドル HWND hTree;//ツリービューのハンドル wchar_t str[256]; HTREEITEM trp[4];//ツリービューの親アイテム設定用 TV_INSERTSTRUCT tv;//ツリービューのアイテム設定用 HTREEITEM hItem;//選択項目取得時にハンドル保存用 TVITEM tvitem;//選択内容取得用 #define TREE_WIDTH 200 #define TREE_HEIGHT 180 #define WIDTH 320 #define HEIGHT 240 //回転用 float anglex = 0.0f; //白 GLfloat white[] = { 1.0, 1.0, 1.0, 1.0 }; //置き換えた後のプロシージャ LRESULT CALLBACK WndProc2(HWND hWnd , UINT msg , WPARAM wParam , LPARAM lParam){ switch( msg ){ case WM_SIZE MoveWindow(hTree, 0, 0, TREE_WIDTH, TREE_HEIGHT, TRUE); SendMessage( hStatusbar, WM_SIZE, wParam, lParam ); return 0; case WM_COMMAND switch (LOWORD(wParam)){ case ID_EXIT PostQuitMessage(0); } return 0; case WM_DESTROY exit(0); break; default if(WndProc){ return CallWindowProc(WndProc,hWnd , msg , wParam , lParam); }else{ return DefWindowProc(hWnd,msg,wParam,lParam); } } } //ウィンドウの検索 BOOL CALLBACK enumWindowsProc(HWND hWnd,LPARAM lParam){ HANDLE hModule=(HANDLE)GetWindowLong(hWnd,GWL_HINSTANCE); if(GetModuleHandle(NULL)==hModule){ wchar_t ClassName[256]; GetClassNameW(hWnd,ClassName,sizeof(ClassName)/sizeof(ClassName[0])); if(wcsncmp(ClassName,L FREEGLUT ,wcslen(ClassName))==0){ hWnd2=hWnd; return FALSE; } } return TRUE; } void display(void){ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glViewport(0, 0, WIDTH, HEIGHT); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(30.0, (double)WIDTH / (double)HEIGHT, 1.0, 1000.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(150.0,150.0,-150.0, 0.0,0.0,0.0, 0.0,1.0,0.0); glMaterialfv(GL_FRONT, GL_DIFFUSE, white); //回転 glRotatef(anglex,1.0f,0.0f,0.0f);//X軸を回転 glutSolidSphere(40.0,16,16); glutSwapBuffers(); } void idle(void){ anglex+=2.0f; Sleep(1); glutPostRedisplay(); } void Init(){ glClearColor(0.3f, 0.3f, 0.3f, 1.0f); glEnable(GL_DEPTH_TEST); //ワイヤーフレーム glPolygonMode(GL_FRONT_AND_BACK,GL_LINE); } bool main(int argc, char *argv[]){ glutInitWindowPosition(100, 100); glutInitWindowSize(WIDTH, HEIGHT); glutInit( argc, argv); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE); glutCreateWindow( ツリービュー ); //FreeGlutのウインドウハンドルとウインドウプロシージャを置き換える EnumWindows(enumWindowsProc,0); if(hWnd2){ WndProc=(WNDPROC)GetWindowLong(hWnd2,GWL_WNDPROC); SetWindowLong(hWnd2,GWL_WNDPROC,(LONG)WndProc2); }else{ return false; } //メニューを作成 hMenu=LoadMenu(GetModuleHandle(NULL),MAKEINTRESOURCE(IDR_MENU1)); if(hMenu){ SetMenu(hWnd2,hMenu); }else{ return false; } // コモンコントロール関係の初期化 InitCommonControls(); // ステータスバーを作成 hStatusbar = CreateStatusWindowW(WS_CHILD | WS_VISIBLE | CCS_BOTTOM | SBARS_SIZEGRIP, L ステータスバー ,hWnd2,ID_STATUS); //ツリービュー hTree = CreateWindowEx(0, WC_TREEVIEW, L , WS_CHILD | WS_VISIBLE | TVS_HASLINES | TVS_HASBUTTONS | TVS_LINESATROOT, 0, 0, TREE_WIDTH, TREE_HEIGHT, hWnd2, (HMENU)ID_TREEVIEW, (HINSTANCE)GetWindowLong(hWnd2, GWL_HINSTANCE), NULL); memset((char *) tv, \0 , sizeof(tv)); //親アイテムを作成 tv.hInsertAfter = TVI_LAST; tv.item.mask = TVIF_TEXT; tv.hParent = TVI_ROOT; tv.item.pszText = L 3D ; trp[0] = TreeView_InsertItem(hTree, tv); tv.item.pszText = L 2D ; trp[1] = TreeView_InsertItem(hTree, tv); //親アイテムに挿入 tv.hParent = trp[0]; tv.item.pszText = L OpenGL ; trp[2] = TreeView_InsertItem(hTree, tv); tv.item.pszText = L DirectX ; trp[3] = TreeView_InsertItem(hTree, tv); //子アイテムに挿入 tv.hParent = trp[2]; tv.item.pszText = L 1 ; TreeView_InsertItem(hTree, tv); //子アイテムに挿入 tv.hParent = trp[2]; tv.item.pszText = L 2 ; TreeView_InsertItem(hTree, tv); //子アイテムに挿入 tv.hParent = trp[3]; tv.item.pszText = L 3 ; TreeView_InsertItem(hTree, tv); //子アイテムに挿入 tv.hParent = trp[3]; tv.item.pszText = L 4 ; TreeView_InsertItem(hTree, tv); glutDisplayFunc(display); glutIdleFunc(idle); Init(); glutMainLoop(); return true; }
https://w.atwiki.jp/linearalgebra/pages/118.html
このページの内容は準備段階のものです。数学書房「考える線形代数」をお買い求めください。 2-2. 回転・線対称の行列表示 <2-1. 線形写像|2-3. 正射影> 02-4.jpg 02-5.jpg 02-6.jpg 02-7.jpg <2-1. 線形写像|2-3. 正射影>
https://w.atwiki.jp/element10plus/pages/6.html
アーカイブ @wikiのwikiモードでは #archive_log() と入力することで、特定のウェブページを保存しておくことができます。 詳しくはこちらをご覧ください。 =>http //www1.atwiki.jp/guide/pages/921.html#id_2d967d6e たとえば、#archive_log()と入力すると以下のように表示されます。 保存したいURLとサイト名を入力して"アーカイブログ"をクリックしてみよう サイト名 URL
https://w.atwiki.jp/denkisyunin/pages/54.html
https://w.atwiki.jp/ikisakisousaku/
LEDで遊ぼう!
https://w.atwiki.jp/ikisakisousaku/pages/2.html
メニュー トップページ プラグイン紹介 メニュー メニュー2 リンク @wiki @wikiご利用ガイド ここを編集
https://w.atwiki.jp/win7life/pages/13.html
Home Basic Starter Home Premium Professional Enterprise Ultimate RC 32Bit ? ? ? ? ? ? ○ 64Bit ? ? ? ? ? ? ? 「スタート」ボタンを選択して、「コンロトールパネル」を選択する。 コントロールパネルの「デスクトップのカスタマイズ」を選択する。 「デスクトップのカスタマイズ」の「フォルダー オプション」を選択する。 「フォルダーオプション」ダイアログの「表示」タブを選択する。 「詳細設定」の「登録されている拡張子は表示しない」のチェックボックスのチェックを外す。 「OK」ボタンを押して、「フォルダーオプション」ダイアログを閉じる。 「×」ボタンを押して、「デスクトップのカスタマイズ」ダイアログを閉じる。 名前 コメント
https://w.atwiki.jp/hayate-tcg/pages/221.html
このページはハヤテTCG対戦チャットの常連の有志の方が作成してくれたフィールド表示CGIのヘルプページです 対戦する場合 まず自分の名前を入力します。 チャットで対戦することになった場合、分かりやすくする為にチャットで使っているHNを使ってください。 次に部屋名を決定します。他に誰もつかっていないようなら「対戦」のままでいいです 対戦が使えないようなら、対戦相手と相談してどの部屋を使うか相談してください オートリロードから全捨て場移動後スタンバイにするまでは初めての場合はスルーしてください 対戦相手と相談して1Pか2Pに被らないように選び、対戦のまま入室しましょう 先攻後攻はチャットでのルールに従ってください カードは5つ並んだテキストの中に番号を書き込み、更新する事で表示する事ができます 例えばハイキングを表示させたい場合、「秋02」と書き込むと表示することができます ちなみに、秋と入力するのが面倒な場合は 夏→s 秋→f で代用することもできます 例: ハイキング→秋02 秋2 f2 悩めるお嬢様→秋61E 秋61 f61 伏せカードの場合は r と入力しましょう アドヴァンスを満たした場合は、アドヴァンスを満たしたカードの上にあるスタンバイをバトルに変更します ライフ、デッキ枚数、手札はなるべく細かく変更しましょう これらの作業を行った後は更新ボタンを押す事を忘れないで下さい コスプレをする場合、Bカードの上に書き込んでください 例:ハイキングに綾崎ハーマイオニーをコスプレさせる場合 s30 f2 もし、自分のカードがバトルで負けてしまった場合、そのカードの上のバトル負けを押してください そのカードがBカード1枚だった場合はこのカードが捨場に移り、 このカードがコスプレをしていた場合は、一番下のカード以外が捨場に移ります この時、前述のような書き方をしなかった場合はCカードが場に残ったりとおかしな事になってしまいます 桂ちゃんのように、全て捨場に移ってしまう効果を受けたカード。またはターン終了時のSカードの処理は、全て捨場を押します 基本操作の説明は以上です。あとは実際に適当な部屋で実験してみると吉? 観戦する場合 部屋名を記入して、最後の部分を対戦から観戦に変えて入室すればおk 名前は不要です
https://w.atwiki.jp/wicky/pages/195.html
分離表示した枠線の間隔を指定 border-collapseプロパティで分離表示を選択した際に、border-spacingプロパティで枠線の間隔を指定することができる。プロパティの値は、上下左右でそれぞれ設定することができる。 設定する値の数によって、上下左右のどの部分の間隔を指定するかが決まる。1つの場合は、上下左右の値、2つの場合は、左右と上下の値を順に設定する。 ●border-collapseプロパティの設定例 table { width 400px; border-collapse separate; border-spacing 7px 5px; }
https://w.atwiki.jp/xismo_userpg/pages/120.html
下絵表示 下絵表示下絵のシェーダを準備する ポリゴンに下絵を貼り付け向きを整える正面用 横用 下絵用のメッシュノードをマージする 下絵の表示確認 サイズの調整 補足数値入力で回転する方法 立方体を使う 下絵を透過する Xismoには下絵を表示する機能はありません図面ノードがありますが(注1)、 ポリ板に下絵のテクスチャを貼り付けたものでも代用できます。 注1:図面ノードが下絵機能に相当する(xismo◇210追加機能)。 使用している下絵の画像は、ニコ生で配布されたものです。 下絵は正面と横向きの2枚、512×512の縦横同じサイズのものを使用しています。 (縦横のサイズが違う下絵を使用する場合、ポリ板の縦横比率を合わせる必要があります。) 説明が長くなったので動画作りました YouTubeの大きな画像で見たほうが解り易いと思います。5分ほどの長さがあります。 下絵のシェーダを準備する 1.下絵を読み込む テクスチャウィンドウに切替→ファイル→開く、下絵を選択(複数選択可)しOK 実行前 実行後 テクスチャウィンドウにテクスチャが追加される。(正面と横) 2.シェーダの作成 (1)正面用のシェーダを設定 ①正面用のシェーダを作成:メニュー→作成→シェーダノード ②シェーダノード名を正面用に変更する:シェーダのプロパティの名前欄に名称を入力する シェーダ作成 作成後 ノード名変更 ②正面用のシェーダに正面用の下絵テクスチャを割り当てる シェーダのプロパティのテクスチャ→正面の下絵を選択 実行前 実行後 (2)横用のシェーダを設定 正面用手順と同様に横用のシェーダを作成する ①横用のシェーダを作成し、シェーダ名称を横用に変更する ②横用のシェーダに横用の下絵テクスチャを割り当てる。 シェーダウィンドウで横用のシェーダを選択すると、横用のシェーダのプロパティに切り替わる ポリゴンに下絵を貼り付け向きを整える 正面用 1.正面用のポリ板を作成 (1)平面のポリゴンを作成する 平面のプリミアティブを作成し、ポリゴン化する。 平面のプリミアティブを作成する:メニュー→作成→プリミタティブ→平面 ポリゴン化する:メニュー→ノード処理→ポリゴン化(ノードウィンドウのフリーズアイコンでもポリゴン化可能) 平面プリミアティブ作成 ポリゴン化 平面ポリゴン作成 下絵を表示したいXismo上のサイズがわかる場合、プリミアティブ作成時にプロパティで幅・奥行のサイズを変更する。 (2)ポリゴンに正面のシェーダを割り当てる ①正面用シェーダをカレントシェーダにする:正面用シェーダをクリック ②ポリゴンを選択状態にする:ポリゴンをクリック ③材質割当:メニュー→選択部処理→材質割り当て(Shift+M) 材質割当 正面用の下絵を貼り付ける 2.ポリゴンの向きと位置を調整する (1)ポリゴンを正面に向ける ユニバーサルツールに切替、ハンドル表示をONにし作業する。 ①ポリゴンをクリックし選択状態にする ②下側の辺をShift押しクリックし、操作中心(ハンドル)を下側の辺に変更する ③X軸を-90度回転する。(Shift押ししながら操作すると15度づつ回転する。←方向にドラッグするとマイナス回転する) 回転量は画面左下のステータスバーに表示される。 ①ポリゴンの選択/②下側の辺にハンドルを移動 ③X軸90回転 正面を向く Shift押しクリックで選択を追加する、また追加された要素が操作の中心に変更される。 ハンドルの回転(○マーク)をShift押しで操作すると15度づつ回転する。←方向に動かすとマイナス、→方向に動かすとプラスに変化する。 下側の辺を操作中心に変更しない場合、上に上げる操作が必要になる。 (2)奥に移動する Z軸の移動をプラス方向に行い、モデルを作成するスペースを空ける。 奥に移動 結果 横用 1.横用のポリ板を作成 正面用と同様にポリ板を作成 (1)平面のポリゴンを作成する 平面のプリミアティブを作成し、ポリゴン化する。 平面のプリミアティブを作成する:メニュー→作成→プリミタティブ→平面 ポリゴン化する:メニュー→ノード処理→ポリゴン化(ノードウィンドウのフリーズアイコンでもポリゴン化可能) 新しく追加した平面のポリゴンを横用のポリゴンにする。 (2)横用の材質を割り当てる ①横用シェーダをカレントシェーダにする:横用シェーダをクリック ②ポリゴンを選択状態にする:横用のポリゴンをクリック ③材質割当:メニュー→選択部処理→材質割り当て(Shift+M) 材質割当 横用の下絵を貼り付ける 2.ポリゴンの向きと位置を調整する ユニバーサルツールを、ハンドル表示ONで作業する。 (1)ポリゴンを横に向ける ①ポリゴンをクリックし、選択状態にする ②Y軸を-90度回転(Shift押しで15度づつ回転) (Shift押ししながら操作すると15度づつ回転する) 回転量は画面左下のステータスバーに表示される。 横を向ける 結果 ハンドルの回転(○マーク)をShift押しで操作すると15度づつ回転する。←方向に動かすとマイナス、→方向に動かすとプラスに変化する。 (2)ポリゴンを立てる ①下側の辺をShift押しクリックし、操作中心(ハンドル)を下側の辺に変更する。 ②Z軸を+90度回転(Shift押しで15度づつ回転) ①下側の辺を操作中心としてZ軸+90度回転 下側の辺を操作中心に変更しない場合、上に上げる操作が必要になる。 (3)奥に移動する X軸の移動をマイナス方向に行い、モデルを作成するスペースを空ける。 正面に向ける 結果 下絵用のメッシュノードをマージする 1.ノードをマージする (1)正面用と横用のメッシュノードを一つにまとめる ノードウィンドウで横用メッシュノードをドラッグし、Ctrl押ししながら正面用メッシュノードに重ねドロップする。メッシュノードがマージされる。 マージ マージ後 2.メッシュノードのノード名を下絵用に変更する。 3.ロックをかける 下絵が変更されないようにロックをかける ①何も無い部分をクリックし、選択の解除をおこなう (選択された状態の場合、コピーなどの対象となってしまうため、選択を解除しておく) ②下絵が変更されないように、メッシュノードのプロパティのロックをチェックし、ロックをかける。 実行前 実行後 下絵の表示確認 正面 右面 正面の中央がX軸のセンターにくる状態であること サイズの調整 ローカル座標ツールに切替、メッシュ変形ONで操作する。 縦横の比率を変えないため、ハンドルの中央(◇マーク)をShift押し操作すると全方向への拡縮の操作を行う。 拡縮 結果 一度の操作で下絵の中央をたもったまま拡縮が行える。ロックがされていない状態で行うこと ユニバーサルツールまたは、拡縮ツールで行う場合、拡宿後、下絵の中央を合わせる操作を行うこと 下絵のサイズが解る場合、プリミアティブ作成時にプロパティのサイズを調整する。 補足 数値入力で回転する方法 ユニバーサルツールでは数値入力で操作はできないが「移動」「拡縮」「回転」の各ツールは数値入力(座標ウィンドウ)が使える 回転ツールに切替、座標ウィンドウを表示(メニュー→ウィンドウ→座標ウィンドウにチェック) 正面用 下側の辺をShift押しクリックし、操作中心(ハンドル)を下側の辺に変更する 座標ウィンドウの回転X-90を入力し、OKで反映する。 正面に向ける 結果 横用 ①座標ウィンドウの回転Y-90を入力し、OKで反映する。 ②下側の辺をShift押しクリックし、操作中心(ハンドル)を下側の辺に変更する 座標ウィンドウの回転Z+90を入力し、OKで反映する。 横に向ける 立てる 結果 下側の辺を操作中心に変更しない場合、上に上げる操作が必要になる。 座標ウィンドウのOKを押す際に、操作中心の位置を確認すること 立方体を使う 立方体プリミアティブをポリゴン化し、下絵のシェーダを図の位置にそれぞれ割り当てる。 不要なポリゴンの削除と、面の頂点が結合されているため分離する作業が必要 ポリゴンの削除:不要なポリゴンを選択し、メニュー→選択部処理→削除(BackSpace) 頂点を分離:正面と横の頂点を選択し、メニュー→選択部処理→頂点を分離する(Shift+D) 下絵を透過する モデルのポリゴンが下絵の前にある場合、下絵が隠れてしまう。モデルに半透明のシェーダを適用することで、モデルと重ねて下絵を表示させることができる。 シェーダの透過度は拡散色のAにより決まる。0が透明、255が不透明、1~254が半透明。0(透明)の場合、頂点と辺のみ表示される。 シェーダの色(RBG/HSV)を変えた場合、A(透過度)もリセットされ255(不透明)に変わる。 下絵はモデル用のメッシュノードより前に並べること。 編集履歴 +... 2019.02.25 新規作成 2019.04.28 下絵の透過について追記 2019.06.17 図面ノードの機能追加にともない一部表現の修正 私dbotが確認したものになります。 用語の間違い、実際の機能と相違することがあります。予めご了承下さい。 記事の間違い、質問は下記メールアドレスまでお願いします。 すぱむ怖いので画像です。 内容の如何にかかわらず、メールを公開させて頂くことがございますので、ご了承下さい。 また必ずしも満足のできる回答が出来るとは限らないことをご了承下さい。