=begin rem =2002/10/22-27,28 =ちよ父折紙 過日、DASACON6(2002/10/19-20) に参加した際、ちよ父の実物大ぬいぐるみ(タニグチリウイチ氏より)と目が合ってしまった。 そういうわけで、そのときその場でちよ父の折紙を考えて、折った。 ここでその折紙を解説する。 =end <% # e-rd-ext なテキスト デコレイション def red(str='red') %Q[((:#{str}:))] end # def red(str='red') def blue(str='blue') %Q[((:#{str}:))] end # def blue(str='blue') def img(name, alt=nil) alt = name if !alt name = name + '.png' if /\.png$/ !~ name %Q[((:#{alt}:))] end # def img(name, alt=nil) %> <% include Math require 'folding' # poly も欲しい # filledPolygon が欲しい def imgsrc(fold, name, alt=nil) alt = name if !alt fold.save(name) name = name + '.png' if /\.png$/ != name return %Q[((:#{alt}:))] end # def imgsrc(fold, name, alt=nil) #alias imgsrc2 imgsrc Folding.new(60,5){ |fold, paper| fold.fill(2,2, fold.white) fold.lineMountain(0,fold.high/2, fold.wide,fold.high/2) fold.save('mountain') fold.lineTransparent(0,fold.high/2, fold.wide,fold.high/2) fold.lineW(0,fold.high/2, fold.wide,fold.high/2) fold.lineValley(0,fold.high/2, fold.wide,fold.high/2) fold.save('valley') fold.lineTransparent(0,fold.high/2, fold.wide,fold.high/2) fold.lineW(0,fold.high/2, fold.wide,fold.high/2) fold.lineG(0,fold.high/2, fold.wide,fold.high/2) fold.save('folded') fold.lineTransparent(0,fold.high/2, fold.wide,fold.high/2) fold.lineW(0,fold.high/2, fold.wide,fold.high/2) fold.lineR(0,fold.high/2, fold.wide,fold.high/2) fold.save('attend') } $size = 128 $size = 256 $fontm = GD::Font.new('Medium') $ayameS = Math::sin(Math::PI/8)/( Math::sin(Math::PI/8) + Math::cos(Math::PI/8) ) $ayameC = Math::cos(Math::PI/8)/( Math::sin(Math::PI/8) + Math::cos(Math::PI/8) ) $ayameSoto = Folding::Polygon.new \ .addPt(0,0).addPt($ayameC*$size/2,$ayameS*$size/2) \ .addPt($size/2,0).addPt($size-$ayameC*$size/2,$ayameS*$size/2) \ .addPt($size,0).addPt($size-$ayameS*$size/2,$ayameC*$size/2) \ .addPt($size,$size/2).addPt($size-$ayameS*$size/2,$size-$ayameC*$size/2) \ .addPt($size,$size).addPt($size-$ayameC*$size/2,$size-$ayameS*$size/2) \ .addPt($size/2,$size).addPt($ayameC*$size/2,$size-$ayameS*$size/2) \ .addPt(0,$size).addPt($ayameS*$size/2,$size-$ayameC*$size/2) \ .addPt(0,$size/2).addPt($ayameS*$size/2,$ayameC*$size/2) ##$ayameSoto2 = $ayameSoto.clone ##$ayameSoto2 = $ayameSoto.dup #$ayameSoto.scale(2,2) # そんな問題じゃないや、sizeに応じて polygonを返す関数 methodにしよう $ayameNaka = Folding::Polygon.new \ .addPt($size/2,$size/2).addPt($ayameC*$size/2,$ayameS*$size/2) \ .addPt($size-$ayameC*$size/2,$ayameS*$size/2) \ .addPt($size/2,$size/2).addPt($size-$ayameS*$size/2,$ayameC*$size/2) \ .addPt($size-$ayameS*$size/2,$size-$ayameC*$size/2) \ .addPt($size/2,$size/2).addPt($size-$ayameC*$size/2,$size-$ayameS*$size/2) \ .addPt($ayameC*$size/2,$size-$ayameS*$size/2) \ .addPt($size/2,$size/2).addPt($ayameS*$size/2,$size-$ayameC*$size/2) \ .addPt($ayameS*$size/2,$ayameC*$size/2) #$ayameNaka.scale(2,2) $hishi = Folding::Polygon.new .addPt(0,$size/2).addPt($size/2,0).addPt($size,$size/2).addPt($size/2,$size) #$hishi.scale(2,2) #この辺は size を変数にとるメソッドにすべき %> =begin =ちよ父 過日、(()) に参加した際、 ちよ父の実物大ぬいぐるみ((<と(【10月19日】)|URL:http://www.asahi-net.or.jp/~wf9r-tngc/nikko2002102.html>))目が合ってしまった。 そういうわけで、そのときその場でちよ父の折紙を考えて、折った。そのちよ父折紙を解説する。 ==折り線図について 折り方の((*注目*))すべき所、及びこの図での説明 *赤い線(折リ目を指示する線)はその時の図での注目の折目線 (<%=img('attend', 'attended red line')%>) *緑色の線はそれまでについている折り目 (<%=img('folded', 'folded green line')%>) *それはそれとして山おり谷折り区別する時は :山折り <%=blue('二点鎖線')%>(<%=img('mountain', 'mountain fold')%>) :谷折り <%=red('点(破)線')%>(<%=img('valley', 'valley fold')%>) ==ちよ父折り紙 ===あやめの基礎 or 蛙の基礎 <% size = $size # *2 #$ayameSoto.scale(2,2) #$ayameNaka.scale(2,2) Folding::new(size) do |chyi, paper| chyi.rectB(0,0, size,size).fillorange(2,2) # chyi.poly(Folding::CraneBase.scaleR(size, size), chyi.black) chyi.poly($hishi, chyi.green) chyi.poly($ayameSoto, chyi.black) chyi.poly($ayameNaka, chyi.black) chyi.lineB(0,0, size,size).lineB(size,0, 0,size) \ .lineB(size/2,0, size/2,size).lineB(0,size/2, size,size/2) puts imgsrc(chyi, 'ayameBase') end # Folding::new(size) do |chyi, paper| %> まず、あやめの基礎とか蛙の基礎などと呼ばれる折り紙の基本形を折る。 <% size = $size * Math::sqrt(2)/2 Folding::new(Folding::Maekawa*size, size) do |chyi, paper| poly = Folding::Polygon.new .addPt(0,size/2).addPt(Folding::Maekawa*size/2,0) \ .addPt(Folding::Maekawa*size,size/2).addPt(Folding::Maekawa*size/2,size) chyi.polyB(poly).fillorange(Folding::Maekawa*size/2,2) chyi.lineG(Folding::Maekawa*size/2,0, Folding::Maekawa*size/2,size) chyi.lineB(0,size/2, Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2) \ .lineB(Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2, Folding::Maekawa*size,size/2) chyi.lineB(Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2, Folding::Maekawa*size/2,size) puts imgsrc(chyi, 'ayame') end # Folding::new(size) do |chyi, paper| %> ===頭を折り込む <% size = $size * Math::sqrt(2)/2 Folding::new(Folding::Maekawa*size, size) do |chyi, paper| poly = Folding::Polygon.new .addPt(0,size/2).addPt(Folding::Maekawa*size/2,0) \ .addPt(Folding::Maekawa*size,size/2).addPt(Folding::Maekawa*size/2,size) chyi.polyB(poly).fillorange(Folding::Maekawa*size/2,2) chyi.lineG(Folding::Maekawa*size/2,0, Folding::Maekawa*size/2,size) chyi.lineB(0,size/2, Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2) \ .lineB(Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2, Folding::Maekawa*size,size/2) chyi.lineB(Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2, Folding::Maekawa*size/2,size) chyi.lineR(0,Folding::Maekawa_ho*size/2/2, Folding::Maekawa*size,Folding::Maekawa_ho*size/2/2) puts imgsrc(chyi, 'atama_orime') end # Folding::new(size) do |chyi, paper| %> 四方(八方)からこのへんで折目をつけておいて内側へ折り込む。 そのときは、この元は紙の中心部だったあたりを一度平らに広げてから内側に折り畳み込むようにすると良い。 <% size = $size * Math::sqrt(2)/2 Folding::new(Folding::Maekawa*size, size) do |chyi, paper| poly = Folding::Polygon.new .addPt(0,size/2) \ .addPt(Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2) \ .addPt(Folding::Maekawa*size-Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2) \ .addPt(Folding::Maekawa*size,size/2).addPt(Folding::Maekawa*size/2,size) chyi.polyB(poly).fillorange(Folding::Maekawa*size/2,size/2) chyi.lineR(Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2, \ Folding::Maekawa*size-Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2) chyi.lineGdotted(Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2, \ Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2) \ .lineGdotted(Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2, \ Folding::Maekawa*size-Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2) chyi.lineG(Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2/2, Folding::Maekawa*size/2,size) chyi.lineB(0,size/2, Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2) \ .lineB(Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2, Folding::Maekawa*size,size/2) chyi.lineB(Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2, Folding::Maekawa*size/2,size) puts imgsrc(chyi, 'atama') end # Folding::new(size) do |chyi, paper| %> ===前後のヒラを折り込む <% size = $size * Math::sqrt(2)/2 Folding::new(Folding::Maekawa*size, size) do |chyi, paper| poly = Folding::Polygon.new .addPt(0,size/2) \ .addPt(Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2) \ .addPt(Folding::Maekawa*size-Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2) \ .addPt(Folding::Maekawa*size,size/2).addPt(Folding::Maekawa*size/2,size) chyi.polyB(poly).fillorange(Folding::Maekawa*size/2,size/2) # chyi.lineR(Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2, \ # Folding::Maekawa*size-Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2) # chyi.lineGdotted(Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2, \ # Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2) \ # .lineGdotted(Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2, \ # Folding::Maekawa*size-Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2) chyi.lineG(Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2/2, Folding::Maekawa*size/2,size) chyi.lineB(0,size/2, Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2) \ .lineB(Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2, Folding::Maekawa*size,size/2) chyi.lineB(Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2, Folding::Maekawa*size/2,size) polySankaku = Folding::Polygon.new .addPt(0,size/2) \ .addPt(Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2).addPt(Folding::Maekawa*size,size/2) chyi.polyR(polySankaku) puts imgsrc(chyi, 'atama_hira') end # Folding::new(size) do |chyi, paper| %> 手前の(直角二等分)三角のヒラ(ヒラ)の所を内側に折り込む。 開げ気味にしながら折り目を逆に折るようにすると良い。 <% size = $size * Math::sqrt(2)/2 Folding::new(Folding::Maekawa*size, size) do |chyi, paper| poly = Folding::Polygon.new .addPt(0,size/2) \ .addPt(Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2) \ .addPt(Folding::Maekawa*size-Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2) \ .addPt(Folding::Maekawa*size,size/2).addPt(Folding::Maekawa*size/2,size) chyi.polyB(poly).fillorange(Folding::Maekawa*size/2,size/2) chyi.lineG(Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2/2, Folding::Maekawa*size/2,size) chyi.lineB(0,size/2, Folding::Maekawa*size,size/2) chyi.lineB(Folding::Maekawa*size/2,size/2, Folding::Maekawa*size/2,size) puts imgsrc(chyi, 'chichibase') end # Folding::new(size) do |chyi, paper| %> 前後の二つを折り込む。左右の間にあるのはそのままで折り込まないで良い。 ===手足を細く折る <% size = $size * Math::sqrt(2)/2 Folding::new(Folding::Maekawa*size, size) do |chyi, paper| poly = Folding::Polygon.new .addPt(0,size/2) \ .addPt(Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2) \ .addPt(Folding::Maekawa*size-Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2) \ .addPt(Folding::Maekawa*size,size/2).addPt(Folding::Maekawa*size/2,size) chyi.polyB(poly).fillorange(Folding::Maekawa*size/2,size/2) chyi.lineG(Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2/2, Folding::Maekawa*size/2,size) chyi.lineB(0,size/2, Folding::Maekawa*size,size/2) chyi.lineB(Folding::Maekawa*size/2,size/2, Folding::Maekawa*size/2,size) chyi.lineMountain( \ Folding::Maekawa*size/2 - sin(PI/8)*size/(1 + 2*cos(PI/8)), cos(PI/8)*size/(1 + 2*cos(PI/8)), \ Folding::Maekawa*size/2,size) chyi.lineMountain( \ Folding::Maekawa*size/2 + sin(PI/8)*size/(1 + 2*cos(PI/8)), cos(PI/8)*size/(1 + 2*cos(PI/8)), \ Folding::Maekawa*size/2,size) puts imgsrc(chyi, 'teashihosoku') end # Folding::new(size) do |chyi, paper| %> 左右ともうえから2枚まで山折りで細くする。裏返して反対側からも同様にして細くする。 <% size = $size * Math::sqrt(2)/2 Folding::new(Folding::Maekawa*size, size) do |chyi, paper| poly = Folding::Polygon.new \ .addPt(Folding::Maekawa*size/2 - sin(PI/8)*size/(1 + 2*cos(PI/8)), cos(PI/8)*size/(1 + 2*cos(PI/8))) \ .addPt(Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2) \ .addPt(Folding::Maekawa*size-Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2) \ .addPt(Folding::Maekawa*size/2 + sin(PI/8)*size/(1 + 2*cos(PI/8)), cos(PI/8)*size/(1 + 2*cos(PI/8))) \ .addPt(Folding::Maekawa*size/2,size) chyi.polyB(poly).fillorange(Folding::Maekawa*size/2,size/2) chyi.lineG(Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2/2, Folding::Maekawa*size/2,size) chyi.lineB(Folding::Maekawa*size/2 - tan(PI/16)*size/2,size/2 \ ,Folding::Maekawa*size/2 + tan(PI/16)*size/2,size/2 ) chyi.lineB(Folding::Maekawa*size/2,size/2, Folding::Maekawa*size/2,size) puts imgsrc(chyi, 'teashihosoi') end # Folding::new(size) do |chyi, paper| %> ===足を折る 右手前を中割折り。いちど手前を開いてから折り上げると良い。 <% size = $size * Math::sqrt(2)/2 Folding::new(Folding::Maekawa*size, size) do |chyi, paper| poly = Folding::Polygon.new \ .addPt(Folding::Maekawa*size/2 - sin(PI/8)*size/(1 + 2*cos(PI/8)), cos(PI/8)*size/(1 + 2*cos(PI/8))) \ .addPt(Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2) \ .addPt(Folding::Maekawa*size-Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2) \ .addPt(Folding::Maekawa*size/2 + sin(PI/8)*size/(1 + 2*cos(PI/8)), cos(PI/8)*size/(1 + 2*cos(PI/8))) \ .addPt(Folding::Maekawa*size/2,size) chyi.polyB(poly).fillorange(Folding::Maekawa*size/2,size/2) chyi.lineG(Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2/2, Folding::Maekawa*size/2,size) chyi.lineB(Folding::Maekawa*size/2 - sin(PI/8)*size/(1 + 2*cos(PI/8)), cos(PI/8)*size/(1 + 2*cos(PI/8)) \ , Folding::Maekawa*size/2,size - size/(cos(PI/8)*2) ) chyi.lineB(Folding::Maekawa*size/2,size - size/(cos(PI/8)*2), Folding::Maekawa*size/2,size) chyi.lineB(Folding::Maekawa*size/2,size - size/(cos(PI/8)*2) \ , Folding::Maekawa*size/2 - tan(PI/16)*size/2,size/2) chyi.valley(Folding::Maekawa*size/2 - tan(PI/16)*size/2,size/2 \ ,Folding::Maekawa*size/2 + tan(PI/16)*size/2,size/2 ) puts imgsrc(chyi, 'migi_asshi_hiraku') end # Folding::new(size) do |chyi, paper| %> 折り上げる。 <% size = $size * Math::sqrt(2)/2 Folding::new(Folding::Maekawa*size, size) do |chyi, paper| # 外形5角 poly = Folding::Polygon.new \ .addPt(Folding::Maekawa*size/2 - sin(PI/8)*size/(1 + 2*cos(PI/8)), cos(PI/8)*size/(1 + 2*cos(PI/8))) \ .addPt(Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2) \ .addPt(Folding::Maekawa*size-Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2) \ .addPt(Folding::Maekawa*size/2 + sin(PI/8)*size/(1 + 2*cos(PI/8)), cos(PI/8)*size/(1 + 2*cos(PI/8))) \ .addPt(Folding::Maekawa*size/2,size) chyi.polyB(poly).fillorange(Folding::Maekawa*size/2,size/2) # 縦中心緑線 chyi.lineG(Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2/2, Folding::Maekawa*size/2,size) # 左細身折目縦中 # chyi.lineB(Folding::Maekawa*size/2 - sin(PI/8)*size/(1 + 2*cos(PI/8)), cos(PI/8)*size/(1 + 2*cos(PI/8)) \ # , Folding::Maekawa*size/2,size - size/(cos(PI/8)*2) ) chyi.lineB(Folding::Maekawa*size/2,size - size/(cos(PI/8)*2), Folding::Maekawa*size/2,size) # 挙げ足 poly_ashi = Folding::Polygon.new .addPt(Folding::Maekawa*size/2,0) \ .addPt(Folding::Maekawa*size/2 - tan(PI/16)*size/2,size/2) \ .addPt(Folding::Maekawa*size/2 + tan(PI/16)*size/2,size/2) chyi.polyB(poly_ashi) chyi.fillorange(Folding::Maekawa*size/2, 3) # 外形上辺挙げ足隠れ chyi.lineO(Folding::Maekawa*size/2 - Folding::Maekawa_ho*tan(PI/16)*size/2/2,Folding::Maekawa_ho*size/2/2 \ ,Folding::Maekawa*size/2 + Folding::Maekawa_ho*tan(PI/16)*size/2/2,Folding::Maekawa_ho*size/2/2) # 挙げ足縦中 chyi.lineB(Folding::Maekawa*size/2,0, Folding::Maekawa*size/2,size/2) # 左細身折目挙げ足隠れ # 0.76 ってのは無いよね、ちゃんと数字だそうね。 chyi.lineB(Folding::Maekawa*size/2 - sin(PI/8)*size/(1 + 2*cos(PI/8)), cos(PI/8)*size/(1 + 2*cos(PI/8)) \ , Folding::Maekawa*size/2 - tan(PI/16)*size*(0.76)/2,size*(0.76)/2 ) # 挙げ足谷折目 chyi.valley(Folding::Maekawa*size/2 - tan(PI/16)*size/3,size/3 \ ,Folding::Maekawa*size/2 + tan(PI/16)*size/3,size/3 ) puts imgsrc(chyi, 'migi_asshi_ageru') end # Folding::new(size) do |chyi, paper| %> 適当な辺りで折り下げる。ちよ父の足は小さめが良さそう。 <% size = $size * Math::sqrt(2)/2 Folding::new(Folding::Maekawa*size, size) do |chyi, paper| # 外形5角 poly = Folding::Polygon.new \ .addPt(Folding::Maekawa*size/2 - sin(PI/8)*size/(1 + 2*cos(PI/8)), cos(PI/8)*size/(1 + 2*cos(PI/8))) \ .addPt(Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2) \ .addPt(Folding::Maekawa*size-Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2) \ .addPt(Folding::Maekawa*size/2 + sin(PI/8)*size/(1 + 2*cos(PI/8)), cos(PI/8)*size/(1 + 2*cos(PI/8))) \ .addPt(Folding::Maekawa*size/2,size) chyi.polyB(poly).fillorange(Folding::Maekawa*size/2,size/2) # 縦中心緑線 chyi.lineG(Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2/2, Folding::Maekawa*size/2,size) # 左細身折目縦中 # chyi.lineB(Folding::Maekawa*size/2 - sin(PI/8)*size/(1 + 2*cos(PI/8)), cos(PI/8)*size/(1 + 2*cos(PI/8)) \ # , Folding::Maekawa*size/2,size - size/(cos(PI/8)*2) ) chyi.lineB(Folding::Maekawa*size/2,size - size/(cos(PI/8)*2), Folding::Maekawa*size/2,size) # 挙げ足台 poly_ashi = Folding::Polygon.new \ .addPt(Folding::Maekawa*size/2 - tan(PI/16)*size/2,size/2) \ .addPt(Folding::Maekawa*size/2 + tan(PI/16)*size/2,size/2) \ .addPt(Folding::Maekawa*size/2 + tan(PI/16)*size/3,size/3) \ .addPt(Folding::Maekawa*size/2 - tan(PI/16)*size/3,size/3) chyi.polyB(poly_ashi) # 左細身折目挙げ足隠れ # 0.76 ってのは無いよね、ちゃんと数字だそうね。 chyi.lineB(Folding::Maekawa*size/2 - sin(PI/8)*size/(1 + 2*cos(PI/8)), cos(PI/8)*size/(1 + 2*cos(PI/8)) \ , Folding::Maekawa*size/2 - tan(PI/16)*size*(0.76)/2,size*(0.76)/2 ) # 挙げ足降し chyi.lineB(Folding::Maekawa*size/2 - tan(PI/16)*size/3,size/3, Folding::Maekawa*size/2, size*2/3) \ .lineB(Folding::Maekawa*size/2 + tan(PI/16)*size/3,size/3, Folding::Maekawa*size/2, size*2/3) # 横中挙げ足降し隠 chyi.lineO(Folding::Maekawa*size/2 - tan(PI/16)*size/6,size/2 \ ,Folding::Maekawa*size/2 + tan(PI/16)*size/6,size/2) # 挙げ足降し縦中 chyi.lineB(Folding::Maekawa*size/2,size/3, Folding::Maekawa*size/2,size*2/3) puts imgsrc(chyi, 'migi_asshi_agesageru') end # Folding::new(size) do |chyi, paper| %> 開きを戻す。 <% size = $size * Math::sqrt(2)/2 Folding::new(Folding::Maekawa*size, size) do |chyi, paper| # 外形5角 poly = Folding::Polygon.new \ .addPt(Folding::Maekawa*size/2 - sin(PI/8)*size/(1 + 2*cos(PI/8)), cos(PI/8)*size/(1 + 2*cos(PI/8))) \ .addPt(Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2) \ .addPt(Folding::Maekawa*size-Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2) \ .addPt(Folding::Maekawa*size/2 + sin(PI/8)*size/(1 + 2*cos(PI/8)), cos(PI/8)*size/(1 + 2*cos(PI/8))) \ .addPt(Folding::Maekawa*size/2,size) chyi.polyB(poly).fillorange(Folding::Maekawa*size/2,size/2) # 縦中緑 chyi.lineG(Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2/2, Folding::Maekawa*size/2,size) # ちよ父底辺 chyi.lineB(Folding::Maekawa*size/2 - tan(PI/16)*size/2,size/2 \ ,Folding::Maekawa*size/2 + tan(PI/16)*size/2,size/2 ) # 手足央辺 chyi.lineB(Folding::Maekawa*size/2,size/2, Folding::Maekawa*size/2,size) # 右足 chyi.lineB(Folding::Maekawa*size/2 + tan(PI/16)*size/6,size/2 \ , Folding::Maekawa*size/2 + tan(PI/16)*size*3/12,size*2/3) chyi.lineB(Folding::Maekawa*size/2 + tan(PI/16)*size*2/6,size/2 \ , Folding::Maekawa*size/2 + tan(PI/16)*size*3/12,size*2/3) puts imgsrc(chyi, 'migi_ashi') end # Folding::new(size) do |chyi, paper| %> 左側も同様にして、右足を折る。 いまちよ父を背中から見てるので、今まで折っていた右側のが左足、次に折るのが右足になる。 <% size = $size * Math::sqrt(2)/2 Folding::new(Folding::Maekawa*size, size) do |chyi, paper| # 外形5角 poly = Folding::Polygon.new \ .addPt(Folding::Maekawa*size/2 - sin(PI/8)*size/(1 + 2*cos(PI/8)), cos(PI/8)*size/(1 + 2*cos(PI/8))) \ .addPt(Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2) \ .addPt(Folding::Maekawa*size-Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2) \ .addPt(Folding::Maekawa*size/2 + sin(PI/8)*size/(1 + 2*cos(PI/8)), cos(PI/8)*size/(1 + 2*cos(PI/8))) \ .addPt(Folding::Maekawa*size/2,size) chyi.polyB(poly).fillorange(Folding::Maekawa*size/2,size/2) # 縦中緑 chyi.lineG(Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2/2, Folding::Maekawa*size/2,size) # ちよ父底辺 chyi.lineB(Folding::Maekawa*size/2 - tan(PI/16)*size/2,size/2 \ ,Folding::Maekawa*size/2 + tan(PI/16)*size/2,size/2 ) # 手足央辺 chyi.lineB(Folding::Maekawa*size/2,size/2, Folding::Maekawa*size/2,size) # 右側足(左足) chyi.lineB(Folding::Maekawa*size/2 + tan(PI/16)*size/6,size/2 \ , Folding::Maekawa*size/2 + tan(PI/16)*size*3/12,size*2/3) chyi.lineB(Folding::Maekawa*size/2 + tan(PI/16)*size*2/6,size/2 \ , Folding::Maekawa*size/2 + tan(PI/16)*size*3/12,size*2/3) # 左側足(右足) chyi.lineB(Folding::Maekawa*size/2 - tan(PI/16)*size/6,size/2 \ , Folding::Maekawa*size/2 - tan(PI/16)*size*3/12,size*2/3) chyi.lineB(Folding::Maekawa*size/2 - tan(PI/16)*size*2/6,size/2 \ , Folding::Maekawa*size/2 - tan(PI/16)*size*3/12,size*2/3) puts imgsrc(chyi, 'ryoh_ashi') end # Folding::new(size) do |chyi, paper| %> ===手を折る 裏返してから、まず、足のときと同じ様にに折り上げる。 <% # なんとなく、定型な線を文字列化してみる。 chichi_rinkaku = < <% size = $size * Math::sqrt(2)/2 Folding::new(Folding::Maekawa*size, size) do |chyi, paper| eval(chichi_rinkaku) eval(hidari_sakinaga) eval(ashi_righthand) # eval(ashi_lefthand) eval(age_te_migi) # 挙げ手谷折目 chyi.valley(Folding::Maekawa*size/2 - tan(PI/16)*size*2/7,size*2/7, Folding::Maekawa*size/2,size/3) chyi.valley(Folding::Maekawa*size/2 + tan(PI/16)*size*2/7,size*2/7, Folding::Maekawa*size/2,size/3) puts imgsrc(chyi, 'migi_te_ageru') end # Folding::new(size) do |chyi, paper| %> ぎりぎりまで折り上げるのではなく、紙数枚分の余裕をみて折り上げる。 普通の 15cm四方の折り紙なら 1mmに満たぬ程度。 開きを戻しながら手を中割折り。 <% size = $size * Math::sqrt(2)/2 #Folding::new(Folding::Maekawa*size, size) do |chyi, paper| Folding::new(size*3/5, size) do |chyi, paper| eval(chichi_rinkaku) eval(hidari_sakinaga) eval(ashi_righthand) # eval(ashi_lefthand) eval(te_righthand) # eval(te_lefthand) puts imgsrc(chyi, 'migi_te_ryoashi') end # Folding::new(size) do |chyi, paper| %> 左側も同様にして、左手を折る。 <% size = $size * Math::sqrt(2)/2 #Folding::new(Folding::Maekawa*size, size) do |chyi, paper| Folding::new(size*2/5, size*3/11, size/6) do |chyi, paper| eval(translateVert(chichi_rinkaku, '-size/4')) eval(translateVert(ashi_righthand, '-size/4')) eval(translateVert(ashi_lefthand, '-size/4')) eval(translateVert(te_righthand, '-size/4')) eval(translateVert(te_lefthand, '-size/4')) puts imgsrc(chyi, 'ryoh_te_ryoashi') end # Folding::new(size) do |chyi, paper| %> 左右の折込みだけど、手の折込みと足の折込みの間のヒラをまとめる。 手を折り上げるときにおいた余裕で、手の基部のポケットに足の基部を差し込む。 <% hidari_hosomi_0 = < <% size = $size * Math::sqrt(2)/2 Folding::new(size*2/5, size*3/11, size/6) do |chyi, paper| eval(translateVert(chichi_rinkaku, '-size/4')) eval(translateVert(ashi_righthand, '-size/4')) eval(translateVert(ashi_lefthand, '-size/4')) # eval(translateVert(te_righthand, '-size/4')) eval(translateVert(te_lefthand, '-size/4')) eval(translateVert(hidari_hosomi_0, '-size/4')) eval(translateVert(migi_hosomi_0, '-size/4')) eval(translateVert(naka_hira, '-size/4')) eval(translateVert(sashikomu, '-size/4')) puts imgsrc(chyi, 'te_ashi') end # Folding::new(size) do |chyi, paper| %>(右側) ===ちよ父(その0) これで一応の出来あがり、手を曲げて表情を出そう。 <% size = $size * Math::sqrt(2)#/2 Folding::new(size*2/5, size*3/11, size/6) do |chyi, paper| eval(translateVert(chichi_rinkaku, '-size/4')) eval(translateVert( 'chyi.lineO(Folding::Maekawa*size/2, Folding::Maekawa_ho*size/2/2, Folding::Maekawa*size/2, size/2)' \ , '-size/4')) eval(translateVert(ashi_righthand, '-size/4')) eval(translateVert(ashi_lefthand, '-size/4')) eval(translateVert(te_righthand, '-size/4')) eval(translateVert(te_lefthand, '-size/4')) puts imgsrc(chyi, 'chiyo_chichi_0') end # Folding::new(size) do |chyi, paper| %> ===耳 やっぱり耳は尖っていた方が良いでしょう。その為にはあとで少し鋏を使います。 <% size = $size * Math::sqrt(2)#/2 #Folding::new(Folding::Maekawa*size, size) do |chyi, paper| Folding::new(size*2/5, size*3/11, size/6) do |chyi, paper| eval(translateVert(chichi_rinkaku, '-size/4')) # eval(translateVert( # 'chyi.lineO(Folding::Maekawa*size/2, Folding::Maekawa_ho*size/2/2, Folding::Maekawa*size/2, size/2)' \ # , '-size/4')) eval(translateVert(ashi_righthand, '-size/4')) eval(translateVert(ashi_lefthand, '-size/4')) eval(translateVert(te_righthand, '-size/4')) eval(translateVert(te_lefthand, '-size/4')) eval(translateVert( 'chyi.lineR(Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2 +1' \ + ', Folding::Maekawa*size/2, size/5)' \ + '.lineR(Folding::Maekawa*size - Folding::Maekawa_ho*size/2/2 -1,Folding::Maekawa_ho*size/2/2 +1,' \ + ' Folding::Maekawa*size/2, size/5)' \ , '-size/4')) # eval(translateVert( # 'chyi.lineB(Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2/2 +1' \ # + ', Folding::Maekawa*size/2, size/5)' \ # , '-size/4')) puts imgsrc(chyi, 'mimi_orime') end # Folding::new(size) do |chyi, paper| %> 上から見るとこういう風になっている。 ((:                :))<% size = $size/3 Folding::new(size, size/3) do |chyi, paper| poly = Folding::Polygon.new \ .addPt(0,0).addPt(chyi.wide,0) \ .addPt(chyi.wide/2 + chyi.wide/20, chyi.high*1/5).addPt(chyi.wide, chyi.high*1/3) \ .addPt(chyi.wide/2 + chyi.wide/20, chyi.high*2/4).addPt(chyi.wide, chyi.high*2/3) \ .addPt(chyi.wide/2 + chyi.wide/20, chyi.high*4/5) \ .addPt(chyi.wide,chyi.high).addPt(0,chyi.high) \ .addPt(chyi.wide/2 - chyi.wide/20, chyi.high*4/5).addPt(0, chyi.high*2/3) \ .addPt(chyi.wide/2 - chyi.wide/20, chyi.high*2/4).addPt(0, chyi.high*1/3) \ .addPt(chyi.wide/2 - chyi.wide/20, chyi.high*1/5) chyi.polyB(poly).fillgrayshadow(chyi.wide/2,1) puts imgsrc(chyi, 'uekara_0') end # Folding::new(size) do |chyi, paper| %> まず、中の6つ(右3 左3)を、先の線のように折り込む。 左右とも真中のは中割折り、前後のは中割折りした間に折り込む。 ((:                :))<% size = $size/3 Folding::new(size, size/3) do |chyi, paper| poly = Folding::Polygon.new \ .addPt(0,0).addPt(chyi.wide,0) \ .addPt(chyi.wide/2 + chyi.wide/20, chyi.high*1/5) \ .addPt(chyi.wide, chyi.high*1/4).addPt(chyi.wide*3/4 + chyi.wide/20, chyi.high*3/8) \ .addPt(chyi.wide, chyi.high*1/2) \ .addPt(chyi.wide*3/4 + chyi.wide/20, chyi.high*5/8).addPt(chyi.wide, chyi.high*3/4) \ .addPt(chyi.wide/2 + chyi.wide/20, chyi.high*4/5) \ .addPt(chyi.wide,chyi.high).addPt(0,chyi.high) \ .addPt(chyi.wide/2 - chyi.wide/20, chyi.high*4/5).addPt(0, chyi.high*2/3) \ .addPt(chyi.wide/2 - chyi.wide/20, chyi.high*2/4).addPt(0, chyi.high*1/3) \ .addPt(chyi.wide/2 - chyi.wide/20, chyi.high*1/5) chyi.polyB(poly).fillgrayshadow(chyi.wide/2,1) chyi.arcBl(chyi.wide,chyi.high/4, chyi.wide*6/7,chyi.high*3/5, 100,175) chyi.string(chyi.wide*0.7,chyi.high*0.22, '>', nil, chyi.blue) puts imgsrc(chyi, 'uekara_1') end # Folding::new(size) do |chyi, paper| %> そして、前後の上の方には切込みをいれてこれも折込む。 ここで鋏を使う事についての感想に 「((<僕の正邪判定は、切る長さに異存するのかもしれない|URL:http://www.din.or.jp/~mukai/rep/14.html>))」 という((<方|URL:http://www.din.or.jp/~mukai/>))があった。 <% size = $size * Math::sqrt(2)#/2 Folding::new(size*2/5, size*3/11, size/6) do |chyi, paper| eval(translateVert(chichi_rinkaku, '-size/4')) eval(translateVert(ashi_righthand, '-size/4')) eval(translateVert(ashi_lefthand, '-size/4')) eval(translateVert(te_righthand, '-size/4')) eval(translateVert(te_lefthand, '-size/4')) eval(translateVert( 'chyi.lineMountain(Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2 +1' \ + ', Folding::Maekawa*size/2, size/5)' \ + '.lineMountain(Folding::Maekawa*size - Folding::Maekawa_ho*size/2/2 -1,Folding::Maekawa_ho*size/2/2 +1,' \ + ' Folding::Maekawa*size/2, size/5)' \ , '-size/4')) eval(translateVert( 'chyi.lineValley(Folding::Maekawa_ho*size/2/2,Folding::Maekawa_ho*size/2/2 +1' \ + ', Folding::Maekawa*size/2, size/6)' \ + '.lineValley(Folding::Maekawa*size - Folding::Maekawa_ho*size/2/2 -1,Folding::Maekawa_ho*size/2/2 +1,' \ + ' Folding::Maekawa*size/2, size/6)' \ , '-size/4')) eval(translateVert( 'chyi.lineB(Folding::Maekawa*size/2,Folding::Maekawa_ho*size/2/2 +1' \ + ', Folding::Maekawa*size/2, size/5)' \ , '-size/4')) puts imgsrc(chyi, 'mimi_kirikomi') end # Folding::new(size) do |chyi, paper| %> さっきの中割折りした所ではなく、其々の手前の細い隙間に折込むのが良いでしょう。 ===ちよ父(完成) <% size = $size * Math::sqrt(2)#/2 #Folding::new(Folding::Maekawa*size, size) do |chyi, paper| Folding::new(size*2/5, size*3/11, size/6) do |chyi, paper| eval(translateVert(chichi_mimi_rinkaku, '-size/4')) # eval(translateVert( # 'chyi.lineO(Folding::Maekawa*size/2, size/5, Folding::Maekawa*size/2, size/2)' \ # , '-size/4')) eval(translateVert(ashi_righthand, '-size/4')) eval(translateVert(ashi_lefthand, '-size/4')) eval(translateVert(te_righthand, '-size/4')) eval(translateVert(te_lefthand, '-size/4')) puts imgsrc(chyi, 'chiyo_chichi_mimiari') end # Folding::new(size) do |chyi, paper| %> 目を書きましょう。適宜 手を曲げてポーズを付けましょう。 ((:ちよ父 折紙:)) ==参照 *((<メディアワークス「あずまんが大王」あずま きよひこ|URL:http://www.mediaworks.co.jp/users_s/azmanga/>)) *((<"「あずまんが大王 THE ANIMATION」あずまきよひこ・メディアワークス/あずまんが大王製作委員会"|URL:http://www.tv-tokyo.co.jp/anime/azumanga/main_index.html>)) *折図作成・説明 (()): powered by (()) 1.6.7 ( (()) 1.6.7.5 ) , ((<"Ruby/GD"|URL:http://www.acc.ne.jp/~tam/GD/index.html>)) , (()) , (()) (0.1.2) , (()) (1.3.3) , and (()) , and (()) 1.2.1 , and other softwares . ((:
:)) ((:
:)) (()) 2002/10/22-27,/28 ((:
:)) (()), (()), and required (()), (()) . ruby erb.rb tiyotiti.erd > tiyotiti.rd ruby rd2.rb -r rd/rd2html-ext-lib --native-inline --ref-extension --headline-title --with-css=tiyo9587.css tiyotiti.rd > tiyotiti.htm =end