ぬの部屋(仮)
nu-no-he-ya
  •      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
           
  • ngPlantで木を作る(1)

    で、ngPlantは、木をポリゴンで作成するツールだ。

    1_first_status

    初期状態の画面はこうなっている。左側がビューで、円筒がこれから作成する木のべーすとなる。

    この画面での右側の上の方は使わない。

    重要なのは、右下の、図の赤枠で囲った部分。ここから、どの幹や枝を編集対象にするかを選択する。

    まず、最初は[Plant]が選択されているので、[Branch-1]をクリックし選択する。選択された枝は太文字になる。

    2_Branch-1_selected     3_Branch_Edit_number

    枝が選択されると、右上の画面がその枝の編集画面に変わる。ここからその枝の調整をしていく。

    ちなみに以下、サムネイル画像を貼り付けたところ本来の画像から上下が切れてしまった。クリックするとフルで見られる。意外と上下を見ないと理解できない画像があったりする。遠い未来に直すかもしれない。

    Length: 幹・枝の長さを調節。
    数字が大きくなるほど高く(長く)なる

    図は
    左がLength=15 ,
    右がLength=30

    4_Branch1_Length15 5_Branch1_Length30

    Variation:

    今、枝(幹)が一本しかない。
    こういうときは意味をなさないので
    後回しにする。

     

    Offset influence:

    これも一本しかないときは
    意味がないので後回し。

     

    Resolution:
    枝の長さ方向の分割数を指定。
    Altキーを押すと、ビューにポリゴン
    (三角形)を示す線が現れる。
    これで分割状態が変化することが
    確認できる。
    右図では左から20,5,1。
    枝が曲がる関節となるので、
    この値が小さいと思った形に
    ならないことがある

    8_Branch1_Resolution20 6_Branch1_Resolution5 7_Branch1_Resolution1

    Axis variation:

    枝をぐねぐね曲げる。
    (他に良い表現が思いつかない)。
    Resolutionが1だと変化がないので
    注意。
    右図はResolution=10で
    Axis variation=0.40のとき。

    10_Branch1_AxVar_R10A040_ue 9_Branch1_AxVar_R10A040_yoko

    Radius:枝の太さを指定。
    数字が大きくなるほど太くなる。

    右図はRadius=4とRadius=1

    12_Branch1_Radius4 11_Branch1_Radius1

    Profile:枝の太さの細かい指定

    右側の赤い点を小さくすると、
    頭頂部の径が小さくなる。
    左側の赤い点を小さくすると、
    根元が細くなる。
    右図
    右側の点を中間に置いた場合と、
    そこに点を一つ追加した場合。
    点の追加は線の上をクリックして行う

    14_Branch1_profile2 13_Branch1_profile1

    Resolution:枝の幅方向の分割数
    この値が小さいと角錐に近く、
    大きいと円錐に近くなる。
    小さい方がデータ量が小さくなる。

    右図はResolution=20及び8

     16_Branch1_Resolution20 15_Branch1_Resolution8
     Distribution
    枝を曲げる。あるいは垂れさせる。
    Axis variationと違って、一方向にしか曲がらない。
    右の赤い点を小さくすると頭頂部から垂れ、
    左の赤い点を小さくすると根本から垂れる。
    右図はLength=30で、各点を指定した場合。
    この曲がり具合もResolutionに依存するので注意。
     18_Branch1_Distribution2 19_Branch1_Distribution3 17_Branch1_Distribution1

     

    次に、枝を追加してみる。

     20_Branch1_next 21_Branch2_all

     [Branch-1]を右クリックし、[Append branch]→[New branch]を選択。

    くしのように新しい枝が生える。右下に表示されている新しい枝[Branch-1-1]が選択(強調表示)されていることを確認して、右上をもう一度見てみる。

    大体は同じで、違いは、主幹一本の時と違い、枝がたくさんあるときは各パラメータが影響を与えるのはその階層の枝全てだと言うこと。例えば、Axis Variationの数字をあげると、横に伸びている枝全てが複雑に折れ曲がる。

     22_Branch2_test

     

    Axis Variationは0にしておくとして、この状態で、先ほど飛ばしたVariationとOffset influenceについてみてみる。

    Variation
    枝が複数あるとき、長さにばらつきを与える
    23_Branch2_variation
    Offset influence
    枝が複数あるとき、長さを
    曲線的に変化させる
    24_Branch2_influence1 25_Branch2_influence2 

     

     

     

     

     

     

     

     

     

     

    std::removeの挙動

    俺がstd::removeを理解できないのはどう考えても仕様が悪い。

    というわけで、std::removeの挙動の再確認。

    std::removeは、第一引数から第二引数までのコンテナ内の、第三引数で指定された値を削除する(嘘)、STLの関数だ。

     

    今回使うのは以下。removeのためにalgorithm。iteratorはstd::beginを気分で使う。

    #include <vector>
    #include <iostream>
    #include <algorithm>
    #include <iterator>

     

     

     

    まず配列を用意して初期化する。

    std::vector<int> vec = { 1, 2, 3, 2 , 4, 2 , 5 };
    
    for (auto i = std::begin(vec); i != std::end(vec); i++){
    	std::cout << *i << std::endl;
    }

    結果は、

    1
    2
    3
    2
    4
    2
    5

     

     

     

     次に、この配列の値2に対してstd::removeをかける

    auto end = std::remove(std::begin(vec), std::end(vec), 2);
    
    for (auto i = std::begin(vec); i != std::end(vec); i++){
    	std::cout << *i << std::endl;
    }
    

     結果は、

    1
    3
    4
    5
    4
    2
    5

     

     

     

    さあ、もう訳がわからない。消えたはずの2は残っていてその割に個数は減っていてその上位置まで変わっていて、さらにいじったつもりのない4と5が増えている。

     

     

    Erase-Removeエディオムというのがあり、eraseと併用すれば消える。

    vec.erase(
    	std::remove(
    		std::begin(vec),
    		std::end(vec),
    		2
    	),
    	std::end(vec)
    );
    
    for (auto i = std::begin(vec); i != std::end(vec); i++){
    	std::cout << *i << std::endl;
    }

     

     

     

    これはつまりこういうことだ。

     

    std::removeは、指定した削除対象の値以外のものを配列の左側に再配置する。

    そして戻り値として、必要なデータが入っている領域の次の値へのイテレータを返す。

    std::removeが行うのはコンテナの中の値の書き換えだけなので、高速だが、そのままではいわば「破棄推奨領域」が生じてしまう

    (※) end2 = std::remove(begin,end,value);というようにして、以後の処理を begin~end2の範囲に対して行うようにすれば、消えたものとして処理できる。

    この破棄推奨領域を削除する行為は、確保されているメモリ領域の変更なのでstd::eraseを用いる必要がある。

    removeerase

     

    一才桜(2015/03/07)

     

     

     

     

    今年の冬はかなり暖かかったようで、部屋の中が氷点下になることはなかったように思う。

    その甲斐あってか、まだ3月だというのに部屋に入れておいた桜がほんのりと咲き始めた。買って三年ぐらいだろうか。まだ選定をしたことがない。今年あたりやってみようと思う。

     

    issai_zakura_2015_03_08

     

     

    旅のラゴス

     

     

     

    ・「おれ」の一人称。

    ・~た。

    ・超能力系のSF

    ・ページ数:250

    ・筒井康隆

     

    一度文明が滅んだ世界で、主人公ラゴスの旅の最中に起こった様々な事件が、一話完結で12ほど納められている。

    一話完結とはいえ前後のつながりはちゃんとあるので順番に読むべき。

     

    きわめて哲学要素が強い作品。超能力もたいしたものはなく、人や他の生物と共感するとか、壁抜け(ただしすごく時間がかかる)とか、そんな類で、あくまでも世界観としての立ち位置に忠実。戦闘ものではないため戦いのシーンはほぼ出てこない。そういう意味ではアクション性はない。ただし馬で盗賊から逃げたりはする。

    笑い所はないが作品としてはとても「きれい」な類で、落ち着いて読める。

     

     

     

     

    ————————————————————————-

    遅い夕食は夫人と令嬢の吟味によるまさに貴族の晩餐と呼ぶにふさわしいもので、それはただのホテルの宿泊客に出す料理のようではなく、その上その食事はたったひとりの客であるおれと、主人のドリド氏との会食であり、夫人と令嬢の給仕によるものであった。夫人と令嬢はこの上なく高貴であり、令嬢の愛らしさは例えようがなかった。おれは夢見心地で食べ続けた。

    ————————————————————————-

    「ラゴスさん、あんた石火箭が扱えるかね」

    おれはそのことばで一も二もなくとび起きた。「襲撃だな。盗賊団か」

    身支度するおれにシャクロは揉み手を続けながら説明した。「奴隷狩りだよ。この町の南西二百キロのところに銀山があって採掘業者が銀鉱を開いているのだが、鉱夫を傭わずに奴隷を使っている。その奴隷の数が少なくなると近くの村へ出かけて奴隷狩りをやるのだが、まさかこんな大きな町を襲うとは思わなかった。奴隷の数がよほど不足しているんだろう」

    「連中、どれぐらいいるんだ」

    「朝がた、見張りの傭兵が城壁の上から見たところでは、約八十人が町を取り囲んでいるそうだ」

    「こっちの傭兵の数は」

    「二十人とちょっと、それに警備隊員が予備役も入れて二十五人前後」

    「そいつはえらいことだな」

     ————————————————————