Реализация: intre
Идея и графика: goglus
o=#061B18 d=#68DEE7 gramm=" .......................................o................................... ..................................oddddddod................................ .............................dddddddddddddddddddd.......................... .......................d..dddddddoooooooooooddddddd........................ .......................ddddddoooooooddodoooooooodddddd..................... .....................ddddoooooodoodddooddoddddoooooodddd................... ...................ddddoooodoooooooooooddoodddooddoooddddd................. ..................dddoooddoooodoodoodoooooddddooooddooooddd................ .................ddooodoooodoododdoodoooooddddooooododoooddo............... ...............oddooodoodoodoodooddoooooooddddoodoodoooooooddo............. ..............ddooodoooooooooooooddooooooodddooooodooooodooodddo........... .............ddoooddoodoodoodoodoooododdoodddooooddooddoddoooddd........... ............odoododddooooooodoodooooooodoodddodooddooodddoodooddd.......... ...........ddooooooodooodddoddoodddddoddddddooooodooooddooooddoodo......... ..........ddooddoooooooodddooooooooooooooooooodooooddddoodooodoooddo....... .........dooodododoooodooddodooooddddodddddooooodoooooooddooodoooddd....... ........odoodooooooddooooddoooddddoooooooooddddoooooodooddddoooodoodd...... ........ddoodoodooodooooddoodddoooodoooooooooodddooddoodddddoooodoodd...... .......odooodoooodooooodooddooooodooooddoooodoooddooodoooodoooooodoodd..... ......ddooddddooooooooooodoooodoodoooooooooooddoooodooooodoodddoooooodo.... ......ddodooooooooooddoddoodooooooooodoodooooodooooooooddoododoodddoodd.... ......doodoooooooooododdooodooooooooodoodoooooooooooodoodoodooodooododod... .....ddoododoodooooooddoooooodoooodoooddooooooooooooooooooooooodooodoodd... .....dooooodoooooododdoooooooooooooooooooooodoooooooooodoododdoooddoooddo.. ....ddoooooooooooooooooooooooooooodoooddddooooododoooooodoooooooodoodoodo.. ....doododdddoooddoooooddoooooooooooooooooodooodddooooooodooooooooooddodd.. ....doooodddddooooddoodoooooooooodooooooooddooddddddooooooooodooddddddodd.. ...odoodooododoododooodoooooooooodoooododddddoodoododooooododoodddddoooodd. ...doodddoooooooooooooddoooddooodooooooddddddodooooodddooodooododooooodoodo ...dooooodddddooodoooodooooooooddddddddddooodooooooooooodoododooooooooooodo ...dooooooooooooodooodooooodoooooododddooooddoooooooooooooodooooodddoooood. ..odoodoooooooooooooodddooooooooooooooododdodoooooooooooooodoooooddooodood. ..ddodooooooddoodooooddododdooooooooodoooooddoooooooooooooodoooooooooddoodd ..ddodoooooooododoooodddoodooooodoooo..dooodooooooooooooooodooddooodddddodd .oddoddddddodododooooooooooooooooooo....odoooooooooooooooooododdddddddddodd ..ddodddddddooooddddddddddddddddddd.......dddddddddddddddddddoddddddddddodd ..doodddooooooooooooooooooooooooood.......dooooooooooooooooooooooooooodoood ..doodooooooooooooooooooooooooooooo.......ooooooooooooooooooooooooooooododd ..doooodooooddddddddddddddddddddoood.....doodddddddddddddddddddddodoodododd ..ddooddodoodddddddddddddddddddddoooo...oooddddddddddddddddddddddoododooood ..odooddododddddddddddddddddddddddoooooodoodddddddddddddddddddddddododooodd ...dooodoooodddddddddddddddddddddddooooooodddddddddddddddddddddddoooooooodd ...dooooooodddddddddddddddddddddddddooodddddddddddddddddddddddddooddoooood. ..odooddddoooddddddoodooddddoddodddddddooodddddddddddddddoddddddoodddooood. ..odooddddooodddddoooooddddooddoddddddooddddodoododooodoooodddddooodoododd. ...ododddoodooddddoooooooooooooooooooooooooooooodooooooooooddddooooooddodd. ....dodoooooooddddooooooooodoooooooooooooooodooooooodooooooddddoooooodood.. ....dooddoooooddddooododdoododoooodooodododododoodoododododddddododdooodd.. ....ddooooooooodddddddddddddddddddddooddddddddddddddddddddddddoooooddoodd.. ....ddooddddooodddddddddddddddddodddddddddddddddddddddddddddddooooooooodd.. .....ooodoooooooddddddddddddddddoooooooooooooodddddddddddddddoooooodoodd... .....doooooodoooddddddddddddddddooooooooooooodddddddddddddddoodooooooood... ......ddodooddodoodddddddddddddddddddddddoddddddddddddddddddooooodddood.... ......odooodooodoodddddddddddddddddodddddddddddddddddddddddodoooooooodd.... .......ooodooddodoodddddddddddddooooooooooooodddddddddddddoooooooooodd..... ........dooddooodoooddddddddddddoododooooododddddddddddddoodooooododd...... ........ododdoooooooodddddddddddddddddddddddddddddddddddoooooodddoodd...... .........dooooooodddooddddddddddooodddooooooodddddddddooooooooodoodd....... ..........dooooddddddoooddddddddooooddoooooooddddddddooddooooddoodd........ ...........ddooddddoooooooddddddooooodoooooooddddddooodddddoodoodd......... ...........ddoodddoodoodoooddddddddddddddddddddddooooddddddddoood.......... ............oddoododdoooodoooodddddddddddddddddoooodooooddddooodo.......... .............odoooddooooddddooooooooddddddooooooooododoodddoodd............ ...............ooooddooodddooodoooooooooooooddddooooooooddoodd............. ................ddooododdddoooodooodddddddooooodoooodoodooodo.............. .................dddoododdddooooooodoooodddoododooooddoooddo............... ..................oodoooodddoddoododooooddddoooododdoooodo................. .....................ddooooddddoooododooddddooododoooodoo.................. .......................oddooooddddododoodddddodooooddo..................... ........................odddooooooooooodooooooooodod....................... ...........................oodddoooooooooooooddoo.......................... ...............................o..ddddoddddd............................... " make_pixi (gramm) SCREEN_WIDTH = 240 SCREEN_HEIGHT = 320 resize_pixi(0, SCREEN_WIDTH, SCREEN_HEIGHT) angle = 0 last = new_array(2) border_size = 8 center_r = 36 d = 200 r = d/2 gram = new_pixi(d, d, 1) prepare while(1){ clear(SNEG) handle_pen_keys({ drawing=1 last[0]=gpx last[1]=gpy}, {}, { drawing=0 }) t_reset t_rotate_z(-angle, 0, 0, 0) check_draw t_reset t_rotate_z(angle, 0, 0, 0) pixi(gram, 0, 0) pixi (gramm,0,0) angle+2 frame(20) } prepare: x = -r while(x < r){ y = -r while(y < r){ L = x*x + y*y sqrt if rslt < r { // draw border col = BLACK if rslt < r - border_size { // make white space col = BLACK if rslt < center_r { // make black space col = BLACK } } } else { // leave transparent col = 0 } gram[(y+r)*d+x+r] = col y+1 } x+1 } ret sqrt: rslt = L div = L if L <= 0 { ret } while (1){ div = (L / div + div) / 2 if rslt > div { rslt = div } else { ret } } ret check_draw: if drawing = 0 { ret } // if not drawing, skip x = gpx y = gpy L = x*x + y*y sqrt if ((rslt < r-border_size) & (rslt > center_r)) = 0 { ret } // if out of range, skip // all is ok, continue =) set_screen(gram) line(last[0], last[1], x, y, #f5f5f5) last[0] = x last[1] = y set_screen(0) ret
