ぬの部屋(仮)
nu-no-he-ya
  •      12
    3456789
    10111213141516
    17181920212223
    24252627282930
           
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
           
    1234567
    891011121314
    15161718192021
    22232425262728
    2930     
           
        123
    45678910
    11121314151617
    18192021222324
    25262728293031
           
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   
           
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    30      
       1234
    567891011
    12131415161718
    19202122232425
    262728293031 
           
     123456
    78910111213
    14151617181920
    21222324252627
    282930    
           
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
    31      
         12
    3456789
    10111213141516
    17181920212223
    2425262728  
           
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
           
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031     
        123
    45678910
    11121314151617
    18192021222324
    252627282930 
           
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   
           
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    30      
       1234
    567891011
    12131415161718
    19202122232425
    262728293031 
           
    1234567
    891011121314
    15161718192021
    22232425262728
    293031    
           
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
           
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
           
    1234567
    891011121314
    15161718192021
    22232425262728
    2930     
           
        123
    45678910
    11121314151617
    18192021222324
    25262728293031
           
       1234
    567891011
    12131415161718
    19202122232425
    26272829   
           
    1234567
    891011121314
    15161718192021
    22232425262728
    293031    
           
        123
    45678910
    11121314151617
    18192021222324
    25262728293031
           
      12345
    6789101112
    13141516171819
    20212223242526
    27282930   
           
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031     
        123
    45678910
    11121314151617
    18192021222324
    252627282930 
           
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   
           
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
    31      
       1234
    567891011
    12131415161718
    19202122232425
    2627282930  
           
    1234567
    891011121314
    15161718192021
    22232425262728
    293031    
           
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
           
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
           
      12345
    6789101112
    13141516171819
    20212223242526
    2728     
           
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031     
       1234
    567891011
    12131415161718
    19202122232425
    262728293031 
           
     123456
    78910111213
    14151617181920
    21222324252627
    282930    
           
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
    31      
       1234
    567891011
    12131415161718
    19202122232425
    2627282930  
           
    1234567
    891011121314
    15161718192021
    22232425262728
    293031    
           
        123
    45678910
    11121314151617
    18192021222324
    25262728293031
           
      12345
    6789101112
    13141516171819
    20212223242526
    27282930   
           
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031     
        123
    45678910
    11121314151617
    18192021222324
    252627282930 
           
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   
           
     123456
    78910111213
    14151617181920
    21222324252627
    28      
           
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
    31      
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
           
    1234567
    891011121314
    15161718192021
    22232425262728
    2930     
           
        123
    45678910
    11121314151617
    18192021222324
    25262728293031
           
      12345
    6789101112
    13141516171819
    20212223242526
    27282930   
           
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031     
       1234
    567891011
    12131415161718
    19202122232425
    262728293031 
           
     123456
    78910111213
    14151617181920
    21222324252627
    282930    
           
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
    31      
       1234
    567891011
    12131415161718
    19202122232425
    2627282930  
           
    1234567
    891011121314
    15161718192021
    22232425262728
    293031    
           
    1234567
    891011121314
    15161718192021
    22232425262728
           
           
        123
    45678910
    11121314151617
    18192021222324
    25262728293031
           
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   
           
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    30      
       1234
    567891011
    12131415161718
    19202122232425
    262728293031 
           
     123456
    78910111213
    14151617181920
    21222324252627
    282930    
           
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
    31      
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
           
    1234567
    891011121314
    15161718192021
    22232425262728
    2930     
           
        123
    45678910
    11121314151617
    18192021222324
    25262728293031
           
      12345
    6789101112
    13141516171819
    20212223242526
    27282930   
           
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031     
         12
    3456789
    10111213141516
    17181920212223
    242526272829 
           
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
           
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031     
        123
    45678910
    11121314151617
    18192021222324
    252627282930 
           
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   
           
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    30      
       1234
    567891011
    12131415161718
    19202122232425
    262728293031 
           
    1234567
    891011121314
    15161718192021
    22232425262728
    293031    
           
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
           
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
           
    1234567
    891011121314
    15161718192021
    22232425262728
    2930     
           
        123
    45678910
    11121314151617
    18192021222324
    25262728293031
           
        123
    45678910
    11121314151617
    18192021222324
    25262728   
           
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   
           
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
    31      
       1234
    567891011
    12131415161718
    19202122232425
    2627282930  
           
    1234567
    15161718192021
    293031    
           
         12
    3456789
    10111213141516
           
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
           
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031     
        123
    45678910
    11121314151617
    18192021222324
    252627282930 
           
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   
           
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    30      
       1234
    567891011
    12131415161718
    19202122232425
    262728293031 
           
    1234567
    891011121314
    15161718192021
    22232425262728
    293031    
           
        123
    45678910
    11121314151617
    18192021222324
    25262728293031
           
      12345
    6789101112
    13141516171819
    20212223242526
    27282930   
           
        123
    45678910
    11121314151617
    18192021222324
    252627282930 
           
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   
           
       1234
    567891011
    12131415161718
    19202122232425
    2627282930  
           
    1234567
    891011121314
    15161718192021
    22232425262728
    293031    
           
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
           
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
           
      12345
    6789101112
    13141516171819
    20212223242526
    2728     
           
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031     
     123456
    78910111213
    14151617181920
    21222324252627
    282930    
           
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
    31      
    1234567
    891011121314
    15161718192021
    22232425262728
    293031    
           
        123
    45678910
    11121314151617
    18192021222324
    252627282930 
           
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   
           
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   
           
       1234
    567891011
    12131415161718
    19202122232425
    262728293031 
           
     123456
    78910111213
    14151617181920
    21222324252627
    282930    
           
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
    31      
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
           
    1234567
    891011121314
    15161718192021
    22232425262728
    2930     
           
        123
    45678910
    11121314151617
    18192021222324
    25262728293031
           
      12345
    6789101112
    13141516171819
    20212223242526
    27282930   
           
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031     
          1
    2345678
    9101112131415
    16171819202122
    232425262728 
           
       1234
    567891011
    12131415161718
    19202122232425
    262728293031 
           
    1234567
    891011121314
    15161718192021
    22232425262728
    293031    
           
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
           
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
           
    1234567
    891011121314
    15161718192021
    22232425262728
    2930     
           
        123
    45678910
    11121314151617
    18192021222324
    25262728293031
           
  • Blender カーブに沿ってオブジェクトを複製する

    Arrayモディファイアを使うとオブジェクトが歪んでしまうので。

     

    1.コピーするオブジェクトを作る

    2.カーブを用意する

    chain1

     

    3.オブジェクトをカーブの子にする

    ※オブジェクトを右クリック→カーブをShift+右クリック→Ctrl+P

    chain2

     

    4.オブジェクト-[Duplication]-[Frames]

    ※Speedのチェックを外す

    これでパスに沿ってコピーができる

    chain3

     

    5.カーブを選択し、[Path Animation]のFramesで間隔を調節する

    6.同じ場所のFollowのチェックをつけるとオブジェクトの向きがパスに沿うようになる

    chain4

     

    このやり方だと細かい調整が必要になる場合がある。

    カーブの種類を変えたり(頂点を選択して[v])頂点を増やしたり(頂点を二つ選択して[w])して対処する。

     

    chain5

     

    最後に、Convert toではうまくメッシュにならなかったので、一旦obj形式でエクスポートしてからインポートして対処した。

     

    2015/05/16追記:

    複製したオブジェクトを個別にメッシュにする方法。下記をオブジェクトモードで行う。

    ① オブジェクトを選択する。
    ※この時点ではパスに沿って複製されたオブジェクト群は強調が弱く、オリジナルのオブジェクトだけが強調が強い。

      CurveCopy1   ←一番右下のがオリジナル。左側のは全てコピー

     

     

    ②Ctrl + Shift + A を押す。これでオブジェクトが実体化できる。

    ※この状態では移動はできるが、頂点がリンクしていて一つ編集すると全てに同じ編集がかかる
    CurveCopy2 ←カーブから離せるが、頂点が全てリンクしている。

     

     

    ③3DViewの[オブジェクト]→[シングルユーザー化]→[オブジェクトとデータ]を選択。何か聞かれたらSelected Objectsと答える。

    CurveCopy3

     

     

    これで各オブジェクト間のリンクが解除される。
    CurveCopy4

     

    大きな数

    ☆と大きな数の表現で一番でかいのは何だという話になって、

    私的には那由他が好きだけど一番大きいのは無量大数だろうと思っていた。

    http://www.sf.airnet.ne.jp/ts/language/largenumber.html

    ら、

    http://www.geocities.jp/f9305710/kazu.html

     

    その上がこんなにあるという。

    一番トップが不可説不可説転といって、10の37218383881977644441306597687849648128乗の数だという。

     

    はて。10のn乗と言ったときには、1の後に0がn個くっつく。

    例えば10の3乗には1000つまり0が三つ。じゃあ不可説不可説転を文字で表してみようと思っても、実はコンピュータの世界では不可能だ。

    なぜかというと例えば1[TB](テラバイト)のハードディスクがあったとしても、そこにはどうあがいても1,099,511,627,776個のゼロしか入れられない。つまりゼロが10の12乗個までの数字しか表記できない。2014年11月08日現在、3.5インチHDD(つまりパソコン内蔵のもの)で一番大容量で10[TB]らしいので、10の13乗くらいまではいけるかもしれないが、大差ない。嘘だと思っても試さない方がいい。画像も動画も音楽も大量に保存できる高級なハードディスクに、何が悲しくてひたすら数字の0ばかり書き込まねばならんのか。人生はそんなことのためにあるんじゃない。

     

    ともあれ、今までラスボスだと思っていた無量大数は、クックック。奴は我々単位四天王の中でも最弱・・・レベルの雑魚だった。

    というかもう、子供のごっこ遊びで「オレ最強!」「じゃあオレその10倍強い!」「じゃあこっちはその100倍強い!」みたいなノリで適当に名前つけていったらこうなったみたいなアホな誕生秘話がありそうでならない。特に最後のほうはもう不可思とか不可量とか不可説とか、無理無理無理!勘弁して!みたいな感じになっていて、考えた人もよっぽどいやだったんだろうなということが伺えるほどである。鳥山明も同情するんじゃないか。

     

    JavaFX+JNA ウィンドウハンドルを取得する

    JavaFXで作ったウィンドウのHWNDを取得する

    Windowsではウィンドウハンドルさえあれば大抵のことができてしまう。

    http://stackoverflow.com/questions/15034407/how-can-i-get-the-window-handle-hwnd-for-a-stage-in-javafx

    からほぼ転載(getWindowPointer)。

    getWindowPointerで取得したウィンドウハンドルをHWND型の変数に代入し、

    SetWindowTextAでウィンドウのタイトルを変えている。

     

    package fxdemo;
    
    import javafx.application.Application;
    import javafx.stage.Stage;
    
    import com.sun.jna.Pointer;
    import com.sun.jna.platform.win32.WinDef.HWND;
    
    import com.sun.jna.Native;
    import com.sun.jna.win32.StdCallLibrary;
    
    import java.lang.reflect.Method;
    
    public class JavaApp extends Application{
        public static void main(String[] args){
            Application.launch(JavaApp.class, args);
        }
    
        public interface User32 extends StdCallLibrary {
            User32 INSTANCE = (User32) Native.loadLibrary("user32", User32.class);
            int MessageBoxA(HWND hwnd, byte[] text, byte[] caption, int type);
            int MessageBoxA(HWND hwnd, String text, String caption, int type);
        	boolean SetWindowTextA(HWND hwnd, byte[] text);
        	boolean SetWindowTextA(HWND hwnd, String text);
        }
    
    	private static Pointer getWindowPointer( javafx.stage.Window window ) {
    	   Pointer retval = null;
    	   try {
    	      Method m = window.getClass().getMethod("impl_getPeer");
    	      final Object tkStage = m.invoke( window );
    	      m = tkStage.getClass().getDeclaredMethod("getPlatformWindow" );
    	      m.setAccessible( true );
    	      final Object platformWindow = m.invoke( tkStage );
    	      m = platformWindow.getClass().getMethod( "getNativeHandle" );
    	      retval = new Pointer( (Long)m.invoke( platformWindow ) );
    	   } catch (Throwable t) {
    	      System.err.println("Error getting Window Pointer");
    	   }
    	   return retval;
    	}
    
        @Override
        public void start(Stage stage) {
            stage.setTitle("Hello");
            stage.show();
    
            HWND hwnd = new HWND( getWindowPointer(stage) );
            User32 user32 = User32.INSTANCE;
            user32.SetWindowTextA( hwnd , "こんにちは◎★♪".getBytes() );
    
        }
    }

    回転行列からオイラー角を求める

    Faust

    ゲーテのファウスト(高橋義孝・訳)。

    ようやく読み終わったが、大変に面白くない作品だった。

    というか、ギリシャ神話の神とか珍獣が大量に出てくる。ストーリーや会話の意図を理解する上ではわからなくてもほぼ支障はないのだが、理解するだけならWikipedia読めばいい気がする。本よりよほどわかりやすく簡素に内容がわかる。

     

    特に第二部はファウストの出番が少ない。

    冒頭100ページくらいが皇帝とその取り巻きの愚にもつかない会話(というと怒られるのだろう)で占められていて、正直ストーリーにどうか変わってくるのかよくわからない。

     

    ファウストの場合は文章を楽しむ作品であってストーリーがどうこうという話ではないのだろう。そういう意味では日本語訳しか読めない時点で手をつけてはいけない作品なのかもしれない。

     

    救いは、1行が短い箇所が多いので、本の厚みの割に(といってもそんなに厚くないのだが)全部読み終える上での文字数的難易度は低い。

     

    例えば、

    ---------------------------

    妖精たち:

    消えよ、頭上の
    鬱陶しい丸天井よ。
    蒼い大気よ、
    いよいよやさしく
    親しく覗き込め。
    そうら、暗い雲も
    散り失せた。
    星屑がきらきら輝き、
    大きな星は太陽よりも
    やさしく光る。

    ......

    ---------------------------

    云々( Faust [一] P101 (一四四七~) )

     

    あるいは、

    ---------------------------

    ファウスト:

    証文?うるさいことをいう奴だな。
    君は男子というもの、男子の一言というものを知らないのか。
    己が一旦口にした言葉は、己の生涯を拘束する。
    それだけではいけないというのか。
    世界は刻々と流れ動いて一瞬といえども停止せぬ、
    それなのにこの己だけは一枚の証文に縛られるというのか。
    しかし人はみんななんとなく証文をありがたがって、
    そのばかばかしさを考えてみようとはしない。
    信義を誠実に胸に懐いている者は仕合わせだ。
    どんな犠牲をも後悔することはなかろう。ところが字を書き封印をした羊皮紙は、
    化け物のように世間の人を怖がらせる

    ......

    ---------------------------

    云々( Faust [一] P117 (一七一六~) )

     

    こんな感じで1行が短い。だから耐えられた。が、人にはお勧めできない

     

     

     

     

     

     

     

     

     

     

     

     

     

    Blenderで曲線から面→厚み付け

    Bezier等のカーブから面を作成し、厚みをつける。

     

    1.まず曲線を引く。

    特にXY平面上に描く必要はない。

    blender_curvetobox1

     

    2.Geometryの項目でExtrudeを増やすと面になる。

    blender_curvetobox2

     

    3.Solidifyモディファイアを追加し、Thicknessを設定する。OffsetとThicknessの符号は一致させる。つまりOffsetが正の数ならThicknessも+側の値を設定する。

    blender_curvetobox3

     

    4.ObjectモードでObject - Convert to - Mesh from Curve/Meta/Surf/Textを選択するとメッシュになる。

    blender_curvetobox4

     

     

    C++ 勝手にfalseになるboolを作る

    今日は仕事でこんなクラスを作った。

     

    class BOOLatOnce{
    private:
        bool flag;
    public:
        BOOLatOnce(){
            flag = false;
        }
        explicit BOOLatOnce(const bool b){flag = b;}
        BOOLatOnce& operator=(const bool b){flag = b;return *this;}
        operator bool(){
            //評価が行われたら自動でfalseに戻す。
            bool b = flag;
            flag = false;
            return b;
        }
    };

    こいつの使い方は簡単。

    BOOLatOnce bat;

     bat = true; // bat == true

    if( bat ){  // ifの中はtrue

        // ここではすでにbat == false

        /* ... */

    }

    普通のboolと違い、一度評価されたら勝手にfalseに戻る

    ソースコードが食中毒にかかったかのようにスマートになること請け合いだ。

     

    後でメンテナンスする人間(一月後の自分含む)が困惑する様子が目に浮かぶ。

     

    十月末の薔薇と銀杏

     

    もう11月になろうかと言うところで薔薇が咲いている。

    さすがにつぼみが開くまでにはかなりかかった。

    本当は赤+黄なのだが、いつも赤が出ない。肥料が悪いのだろうか。

    bara20141029

     

    銀杏のほうは季節にふさわしく紅葉している

    ityou_20141029y

     

     

    が、同じ日に撮影した銀杏。こいつは室内管理なんだが、青々としている。やはり部屋は暖かいのか。暖かいと駄目なのか。

    ityou_20141029g 

    Blenderでテクスチャで面に凹凸をつける

    法線マップ・バンプマップではなく、実際にメッシュの表面に凹凸をつける。

    blendernml0

     

    1.立方体を用意

    blendernml1

     

    2.Tabを押してEditモードに入り、wキーをしてメニューを開く

    Subdivideを繰り返して分割数を増やす

    blendernml2

    blendernml3

    3.Objectモードに戻り、モディファイア[displace]を追加

    blendernml4

     

    4.テクスチャへ行き、Newをクリック

    blendernml5

     

    5.好きなテクスチャを選ぶ

    blendernml6

     

    6.再びDisplaceモディファイアの設定画面へ行き、Textureを選択する。

    Strengthで凹凸の高さを変更できる。

    blendernml7

     

     

    MFC Staticコントロールの枠とセパレータ化について

    MFCで、メニューではなく普通のウィンドウ内にセパレータを置きたい場合、リソースエディタからは、Picture Controlを配置して高さをなくして、Static EdgeプロパティをTrueにすればいい。

     

    sepa

     

    ただこれをソースコードからどうやるかと言う話。

     

    CRect separator   = CRect(10,0,250,4);
    static = new CStatic();
    static->Create( _T("") , WS_VISIBLE | WS_CHILD | SS_ETCHEDHORZ , separator , this , ID );

     

    thisはここでは親ウィンドウ。

    IDは整数値。