Skip to content

Instantly share code, notes, and snippets.

@shimarin
Created January 4, 2009 11:18
Show Gist options
  • Save shimarin/43040 to your computer and use it in GitHub Desktop.
Save shimarin/43040 to your computer and use it in GitHub Desktop.
M = lambda{|p, x,y| p.moveTo(x,y)}
C = lambda{|p, x1,y1,x2,y2,x3,y3| p.curveTo(x1,y1,x2,y2,x3,y3) }
path = [[M,52,0],[C,42,9,32,17,24,30],[C,15,42,7,60,0,76],[M,0,76],[C,11,65,18,55,34,45],
[C,49,34,72,22,92,11],[M,92,11],[C,77,44,56,75,48,112],[C,39,148,41,192,38,233],
[M,38,233],[C,45,209,54,182,62,163],[C,69,143,77,129,85,113],[M,96,69],
[C,92,102,81,136,86,170],[C,90,203,110,238,122,272],[M,122,272],
[C,123,258,125,244,127,232],[C,128,219,130,208,132,197],[M,137,29],
[C,132,55,122,80,122,109],[C,121,137,129,174,136,203],[C,142,231,154,253,163,278],
[M,163,278],[C,164,246,164,214,169,184],[C,173,153,182,125,189,97],[M,200,29],
[C,197,47,191,61,191,84],[C,190,106,193,137,194,164],[M,194,164],
[C,199,139,203,114,210,91],[C,216,67,224,43,232,20],[M,233,19],[C,236,42,238,68,243,91],
[C,247,113,253,132,259,153],[M,260,153],[C,258,135,256,117,256,100],
[C,255,82,258,63,259,45],[M,256,27],[C,262,51,266,75,277,102],
[C,287,128,305,160,319,189],[M,319,189],[C,316,160,313,129,312,103],
[C,310,76,309,54,308,30],[M,337,29],[C,348,53,362,81,372,104],
[C,381,126,388,143,396,163],[M,396,163],[C,394,141,395,119,392,97],
[C,388,74,381,51,377,29],[M,392,91],[C,402,115,414,137,424,164],
[C,433,190,442,222,451,251],[M,450,252],[C,452,216,458,181,458,144],
[C,457,106,448,66,444,28],[M,454,112],[C,462,128,472,144,480,163],
[C,487,181,494,205,501,226],[M,501,226],[C,497,184,496,134,491,102],
[C,485,69,474,53,467,29],[M,161,82],[C,170,79,180,77,191,74],[C,201,70,213,65,224,62],
[M,327,53],[C,337,50,348,44,359,45],[C,369,45,383,50,392,56],[C,400,61,406,69,413,76],
[M,480,163],[C,477,190,473,208,473,246],[C,473,283,477,340,480,388],[M,450,252],
[C,444,277,438,307,432,330],[C,425,352,419,369,413,389],[M,425,167],
[C,418,207,412,251,404,289],[C,395,326,385,356,376,390],[M,128,219],
[C,132,242,136,266,140,287],[C,143,307,148,323,152,342],[M,440,292],
[C,441,306,442,323,444,335],[C,445,346,448,353,451,363],[M,177,174],
[C,184,171,188,167,200,165],[C,211,162,231,160,247,158],[M,332,152],
[C,344,152,359,152,371,153],[C,382,153,391,156,402,158],[M,187,190],
[C,196,186,207,182,217,180],[C,226,177,237,176,247,175],[M,338,168],
[C,349,168,362,168,373,170],[C,383,171,392,173,402,175],[M,265,237],
[C,269,238,275,241,280,241],[C,284,240,287,236,291,234],[M,291,234],
[C,297,236,306,240,312,241],[C,317,241,322,236,327,235],[M,167,193],
[C,172,206,179,223,183,234],[C,186,244,186,250,191,258],[C,195,265,201,273,212,278],
[C,222,282,242,282,256,285],[C,269,287,282,294,291,296],[C,299,297,301,297,310,296],
[C,318,294,332,289,345,285],[C,357,280,372,273,384,267],[C,395,260,403,251,412,243],
[M,173,209],[C,174,236,173,259,177,290],[C,180,320,189,356,195,390],[M,402,193],
[C,402,193,402,193,402,193]]
generateAnimatedGif(100) {|e|
(1..8).each {|i|
modified_path = path.collect {|pc|
pc.collect {|pcc|pcc.kind_of?(Numeric)? pcc + rand(4) - 2 : pcc }
}
e.addFrame BufferedImage.new(512,384) {|g|
g << BasicStroke.new(:width=>13,:cap=>BasicStroke::CAP_ROUND)
g.drawGeneralPath {|p| modified_path.each {|p1| p1.shift.call(p, *p1) } }
g << Font.new(25)
[{:color=>Color::GRAY,:offset=>2},{:color=>Color::RED,:offset=>0}].each {|t|
g << t[:color]
g.drawString("あけましておめでとう 2009年 元旦", 50+t[:offset], 350+t[:offset])
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment