人間ピラミッドなどの組体操(組立体操を含む.以下「組体操」)について,荷重計算をRubyで計算するプログラムを「gf」と名づけ,GitHubにて公開しました.
実行にはRuby 1.9.2以降が必要です*1.DOT形式からPNG画像への生成にはGraphviz(dotコマンド)を,またExcelファイルの生成にはrubyXLライブラリを,それぞれ必要とします.
開発したプログラムの特徴は以下のとおりです.
- 複数人で行う組体操の技で,各人にかかる負荷を計算します.各人の体重や,誰が誰にどれだけの割合で荷重をかけて乗っているかを,任意に指定できます.
- 典型的な技のうち,「三角形タイプ(俵型)人間ピラミッド」「三角錐タイプ(立体型)人間ピラミッド」「やぐら」は,オプション指定により簡単に荷重などを求めることができます.「三角錐タイプ」と「やぐら」では,体重を乱数で生成し,より実態に合わせた配置での試算も行えます.(同月追記:「三角形タイプ」でも,行えるようにしました.)
- デフォルトでは,「人数」「全重量」「最大荷重(実数)」「最大荷重(割合)=最大で自重の何倍の荷重がかかるか」「最大荷重(割合)となる者(複数ある場合は1名)の詳細情報」を出力します.オプション指定により,全構成員の詳細情報,Rubyコード,DOT形式データ,Excelファイルを出力ことも可能です.
チェックアウトと動作確認は,以下のコマンドでどうぞ.
git clone https://github.com/takehiko/gf.git cd gf ruby test/test_all.rb ruby lib/gf.rb -A unzip -l gf.zip
「典型的な技」について,主要な値を表にまとめました.(同月追記:三角形タイプを更新しました.)
分類 | 段数 | 体重 | 人数 | 最大荷重(割合) | 引数 |
---|---|---|---|---|---|
三角形 | 2 | 一律1 | 3 | 0.50 | -t 2 |
三角形 | 2 | 乱数 | 3 | 0.43 | -t 2 -m 4 -s 12345 |
三角形 | 3 | 一律1 | 6 | 1.50 | -t 3 |
三角形 | 3 | 乱数 | 6 | 1.19 | -t 3 -m 4 -s 12345 |
三角形 | 4 | 一律1 | 10 | 2.21 | -t 4 |
三角形 | 4 | 乱数 | 10 | 1.75 | -t 4 -m 4 -s 12345 |
三角形 | 5 | 一律1 | 15 | 3.12 | -t 5 |
三角形 | 5 | 乱数 | 15 | 2.50 | -t 5 -m 4 -s 12345 |
三角形 | 6 | 一律1 | 21 | 3.81 | -t 6 |
三角形 | 6 | 乱数 | 21 | 3.11 | -t 6 -m 4 -s 12345 |
三角形 | 7 | 一律1 | 28 | 4.81 | -t 7 |
三角形 | 7 | 乱数 | 28 | 3.89 | -t 7 -m 4 -s 12345 |
三角形 | 8 | 一律1 | 36 | 5.54 | -t 8 |
三角形 | 8 | 乱数 | 36 | 4.61 | -t 8 -m 4 -s 12345 |
三角錐 | 3 | 一律1 | 6 | 0.50 | -p 3 |
三角錐 | 3 | 乱数 | 6 | 0.45 | -p 3 -m 4 -s 12345 |
三角錐 | 4 | 一律1 | 13 | 1.05 | -p 4 |
三角錐 | 4 | 乱数 | 13 | 0.78 | -p 4 -m 4 -s 12345 |
三角錐 | 5 | 一律1 | 22 | 1.47 | -p 5 |
三角錐 | 5 | 乱数 | 22 | 1.17 | -p 5 -m 4 -s 12345 |
三角錐 | 6 | 一律1 | 37 | 1.72 | -p 6 |
三角錐 | 6 | 乱数 | 37 | 1.34 | -p 6 -m 4 -s 12345 |
三角錐 | 7 | 一律1 | 55 | 2.41 | -p 7 |
三角錐 | 7 | 乱数 | 55 | 1.67 | -p 7 -m 4 -s 12345 |
三角錐 | 8 | 一律1 | 81 | 2.80 | -p 8 |
三角錐 | 8 | 乱数 | 81 | 2.02 | -p 8 -m 4 -s 12345 |
三角錐 | 9 | 一律1 | 111 | 3.09 | -p 9 |
三角錐 | 9 | 乱数 | 111 | 2.42 | -p 9 -m 4 -s 12345 |
三角錐 | 10 | 一律1 | 151 | 3.85 | -p 10 |
三角錐 | 10 | 乱数 | 151 | 2.73 | -p 10 -m 4 -s 12345 |
三角錐 | 11 | 一律1 | 196 | 4.20 | -p 11 |
三角錐 | 11 | 乱数 | 196 | 3.34 | -p 11 -m 4 -s 12345 |
やぐら | 3 | 一律1 | 5 | 0.50 | -y 5 |
やぐら | 3 | 乱数 | 5 | 0.46 | -y 5 -m 4 -s 12345 |
やぐら | 3 | 一律1 | 7 | 0.50 | -y 7 |
やぐら | 3 | 乱数 | 7 | 0.49 | -y 7 -m 4 -s 12345 |
やぐら | 4 | 一律1 | 9 | 0.74 | -y 9 |
やぐら | 4 | 乱数 | 9 | 0.64 | -y 9 -m 4 -s 12345 |
やぐら | 5 | 一律1 | 21 | 0.99 | -y 21 |
やぐら | 5 | 乱数 | 21 | 0.81 | -y 21 -m 4 -s 12345 |
引数は,「ruby lib/gf.rb」のあとに指定して実行します.各出力の「max_rate=」の直後の値を,小数第2位までになるよう四捨五入し,最大荷重(割合)の値として記載しました.
このプログラムは,以下の記事で紹介したコードなどを統合・整理したものです.スクリプト名・クラス名は大幅に変更しています.
- 組体操・人間ピラミッドの荷重計算をRubyで
- 組体操・人間ピラミッドの荷重計算をRubyで2
- 組体操・人間ピラミッドの荷重計算をRubyで3
- 組体操・人間ピラミッドの構築手順をRubyで
- 組体操・人間ピラミッドの荷重計算をExcelで
- 組体操の「やぐら」(タワー)について
それと,excelディレクトリにgf.xlsxというファイルを配置しました*2.30人分の配置ができます.2行目以降,1行が1人分のデータで,A列に名前,B列に自重を設定します.F列は,その行の自分に負荷をかける人の名前,G列はその割合を設定します.J列とK列,N列とO列,R列とS列も同様です.Excel上で入力をする箇所は,オレンジと緑で塗りつぶしました.