以前やったやつの設計用ソフトみたいなのを作成中.
各マスに関して
水平面になる場所なのか垂直面になる場所なのか
を指定してやると,切込みを入れるべき箇所を黒線で表示してくれるのだ!
(あと,水平と垂直の個数が異常状態だとそのことを教えてくれるぞ!)
黄色系のマスが水平面,青系のマスが垂直面である.
…と,こういう単純な「縦にしか紙を切らないやつ」なら処理は超簡単なんだけど,
こっから先(:横方向にも切るやつをサポートすること)を考えると…難易度高いなぁ.
紙を切って折るやつの設計ソフト
Re: 紙を切って折るやつの設計ソフト
あ,でも極端な話,こんな感じに帯に床がぶら下がってればいいのか?
折った結果として連続する床が壁の下を通ってもよいわけだし.
あとは構造を頑強にするための糊付け用みたいな床(:冗長な床,とでもいうか)があればよいのかな?
(しかし1枚の紙からやるなら広大な紙が要るなコレ.)
折った結果として連続する床が壁の下を通ってもよいわけだし.
あとは構造を頑強にするための糊付け用みたいな床(:冗長な床,とでもいうか)があればよいのかな?
(しかし1枚の紙からやるなら広大な紙が要るなコレ.)
Re: 紙を切って折るやつの設計ソフト
つーか,特定の箇所から複数の床をぶら下げずとも,
【広間みたいなのが無くて各床が必ず壁と接しているような迷路】であれば,
帯の全箇所から1マス分の床をぶら下げておけばとりあえずそれで最低限全床を網羅するのかコレ.
(あとは床と床の間を切るか切らないかみたいな)
ぶら下げる長さを1マスより長くしておけばその余計な分がのりしろにできるかな?
【広間みたいなのが無くて各床が必ず壁と接しているような迷路】であれば,
帯の全箇所から1マス分の床をぶら下げておけばとりあえずそれで最低限全床を網羅するのかコレ.
(あとは床と床の間を切るか切らないかみたいな)
ぶら下げる長さを1マスより長くしておけばその余計な分がのりしろにできるかな?
Re: 紙を切って折るやつの設計ソフト
という感じでどうでしょう?
この小さな迷路で,1マスのサイズが 1cm*1cm だとしても
帯の長さが 1m くらい必要そうですが…^^
(外周を2重にするのを諦めればその分だけは短くできるかな)
この小さな迷路で,1マスのサイズが 1cm*1cm だとしても
帯の長さが 1m くらい必要そうですが…^^
(外周を2重にするのを諦めればその分だけは短くできるかな)
最後に編集したユーザー usao on 2022年2月24日(木) 15:09 [ 編集 1 回目 ]
Re: 紙を切って折るやつの設計ソフト
壁が一本の帯 というのは話はわかりやすいけど,別にそうじゃなきゃ作れないということではないハズ.
迷路データに対して,最も縦横サイズがいい感じに(小さい正方形に近い形に?)なる展開図を出力してくれるようなソフトがあれば…!
(アルゴリズムが思いつかないけど… 最適化みたいなぶん回す系になるか…?)
迷路データに対して,最も縦横サイズがいい感じに(小さい正方形に近い形に?)なる展開図を出力してくれるようなソフトがあれば…!
(アルゴリズムが思いつかないけど… 最適化みたいなぶん回す系になるか…?)
Re: 紙を切って折るやつの設計ソフト
> 【広間みたいなのが無くて各床が必ず壁と接しているような迷路】であれば
この制約だと十字路が作れないな
この制約だと十字路が作れないな
Re: 紙を切って折るやつの設計ソフト
迷路のある列を真横からみたとき,下図の上段のようであるとき
(一枚の紙を折って床と壁とを作っている状態.床が緑で,壁が紫.迷路内部の壁は2重になっている)
これを中段のように「壁が要らない箇所はとりあえず裏側(床下)に出す」という形を考えれば,
下段のようにこれは折りたたんで糊付けでもしてしまえばよいか…?
「これをまず列の方向に行い,次いで行の方向に行う」みたいなことをしたら迷路にならないのだろうか?
(一枚の紙を折って床と壁とを作っている状態.床が緑で,壁が紫.迷路内部の壁は2重になっている)
これを中段のように「壁が要らない箇所はとりあえず裏側(床下)に出す」という形を考えれば,
下段のようにこれは折りたたんで糊付けでもしてしまえばよいか…?
「これをまず列の方向に行い,次いで行の方向に行う」みたいなことをしたら迷路にならないのだろうか?
最後に編集したユーザー usao on 2022年2月28日(月) 15:59 [ 編集 1 回目 ]
Re: 紙を切って折るやつの設計ソフト
(壁1個の大きさが床1マスと同じだとしたら)
この方法では,迷路の床の面積が N*M マスであるときに,展開した紙の大きさが 3N*3M だけ必要という話になるな…
(隣接すべき床用のマスの間には壁の元となる2マスが挟まる形)
ちょっと必要な紙が広すぎる.
壁を2重にするのを諦めて,
切って折って立てるという(1重の)形にするならば 2N*2M にできるのかな.
このサイズならまぁ許容範囲内…かな?
いずれにせよ,床にも壁にもしない箇所をうまく糊代として使う必要があると思う.
そうじゃないと形状を保つのが困難かと.
・壁用の場所だけど壁にしない場所:前投稿の図のように,隣接する床同士の接合に使える
・壁用の場所と壁用の場所との間にあるような場所(床用の場所から斜めの位置にある場所):隣接する壁同士の接合に使えるかな
この方法では,迷路の床の面積が N*M マスであるときに,展開した紙の大きさが 3N*3M だけ必要という話になるな…
(隣接すべき床用のマスの間には壁の元となる2マスが挟まる形)
ちょっと必要な紙が広すぎる.
壁を2重にするのを諦めて,
切って折って立てるという(1重の)形にするならば 2N*2M にできるのかな.
このサイズならまぁ許容範囲内…かな?
いずれにせよ,床にも壁にもしない箇所をうまく糊代として使う必要があると思う.
そうじゃないと形状を保つのが困難かと.
・壁用の場所だけど壁にしない場所:前投稿の図のように,隣接する床同士の接合に使える
・壁用の場所と壁用の場所との間にあるような場所(床用の場所から斜めの位置にある場所):隣接する壁同士の接合に使えるかな
Re: 紙を切って折るやつの設計ソフト
2N*2M の場合,以下のようになるのかな.
壁として使わない紫のところは中央から半分に折る感じ.
問題は,壁を立てた場所が物理的に切れちゃうこと(下図赤矢印の場所)かな.
壁が長い場合には長い切れ目ができちゃうので構造的にどうかっていう心配があるなぁ.
例えば
紫部分の長さを 1.5 倍とかにして,そのうちの 1.0 だけを壁として立てて,0.5の部分を残してやることで糊代にする
とかそういう話はあり得るだろうけど,そういう方向にすると「紙の面積」に関する優位性が薄まっちゃうし.
壁として使わない紫のところは中央から半分に折る感じ.
問題は,壁を立てた場所が物理的に切れちゃうこと(下図赤矢印の場所)かな.
壁が長い場合には長い切れ目ができちゃうので構造的にどうかっていう心配があるなぁ.
例えば
紫部分の長さを 1.5 倍とかにして,そのうちの 1.0 だけを壁として立てて,0.5の部分を残してやることで糊代にする
とかそういう話はあり得るだろうけど,そういう方向にすると「紙の面積」に関する優位性が薄まっちゃうし.
Re: 紙を切って折るやつの設計ソフト
壁なりに床を付けたり付けなかったりの方法なら何とか出来そうですね。
壁をそのまま展開すると細長くなりすぎるので、私が考えたのは壁の曲がり
のところで切って床との接合部分で折り曲げる方法ですが、この方法なら
元の迷路に近い配置で展開できるのですが、問題はTとか+の壁の部分の
壁が分断されることで、やはり壁を2重に折り曲げ接着する部分が必要ですね。
壁をそのまま展開すると細長くなりすぎるので、私が考えたのは壁の曲がり
のところで切って床との接合部分で折り曲げる方法ですが、この方法なら
元の迷路に近い配置で展開できるのですが、問題はTとか+の壁の部分の
壁が分断されることで、やはり壁を2重に折り曲げ接着する部分が必要ですね。
Re: 紙を切って折るやつの設計ソフト
この場合,青い床マスの左や下にも壁を立てないとならない場合どうするんだろう?
左図で青マスに隣接する灰色のマスを立てて壁にするとしたら,じゃあそこの床はどっから持ってくるの?ってことになりそうだし…?
左図で青マスに隣接する灰色のマスを立てて壁にするとしたら,じゃあそこの床はどっから持ってくるの?ってことになりそうだし…?