Facebook
From Funky Macaque, 5 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 223
  1. def koloanty(x0,y0,r):
  2.     ppp = []
  3.     data=np.ones((200,200, 3))
  4.     x = 0
  5.     y = r
  6.     a = 3 - 2*r
  7.     while y>=x:
  8.         data[x0+x,y0+y,0]=1
  9.         data[x0+x,y0+y,1]=0.0
  10.         data[x0+x,y0+y,2]=0
  11.         data[x0+x,y0-y,0]=1
  12.         data[x0+x,y0-y,1]=0.0
  13.         data[x0+x,y0-y,2]=0
  14.         data[x0-x,y0+y,0]=1
  15.         data[x0-x,y0+y,1]=0.0
  16.         data[x0-x,y0+y,2]=0
  17.         data[x0-x,y0-y,0]=1
  18.         data[x0-x,y0-y,1]=0.0
  19.         data[x0-x,y0-y,2]=0
  20.         data[x0-y,y0-x,0]=1
  21.         data[x0-y,y0-x,1]=0.0
  22.         data[x0-y,y0-x,2]=0
  23.         data[x0-y,y0+x,0]=1
  24.         data[x0-y,y0+x,1]=0.0
  25.         data[x0-y,y0+x,2]=0
  26.         data[x0+y,y0+x,0]=1
  27.         data[x0+y,y0+x,1]=0.0
  28.         data[x0+y,y0+x,2]=0
  29.         data[x0+y,y0-x,0]=1
  30.         data[x0+y,y0-x,1]=0.0
  31.         data[x0+y,y0-x,2]=0
  32.         x+=1
  33.         if a>0:
  34.             y-=1
  35.             a = a+4*(x-y)+10
  36.         else:
  37.             a+=4*x-6
  38.        
  39.     for x in range(x0-r-1,x0+r+1):
  40.         for y in range(y0-r-1,y0+r+1):
  41.             if (x0-x)**2+(y0-y)**2<=(r)**2:
  42.                 data[x,y,0]=1
  43.                 data[x,y,1]=0
  44.                 data[x,y,2]=0
  45.             else:
  46.                 alfa = np.sqrt((x-x0)**2 + (y-y0)**2) - r
  47.                 ppp.append(alfa)
  48.                 if alfa<=1 and alfa>0:
  49.                     data[x,y,0] = 1.0
  50.                     data[x,y,1] = alfa
  51.                     data[x,y,2] = alfa
  52.     plt.imshow(data, interpolation='none', aspect=1.0)
  53.     plt.show()
  54. koloanty(100,100,70)