=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[((:
:))]
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[((:
:))]
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