Guest User

cat.py

a guest
Aug 26th, 2020
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.79 KB | None | 0 0
  1. from  graph import *
  2. from math import sin, cos, pi
  3.  
  4. def ellipse( x1, y1, x2, y2, vertex_count = 36 ):
  5.     """
  6.    Рисует эллипс, вписанный в прямоугольник x1,y1 x x2,y2
  7.    """
  8.     (x1, x2) = (min(x1, x2), max(x1, x2))
  9.     (y1, y2) = (min(y1, y2), max(y1, y2))
  10.     a = (x2 - x1) / 2
  11.     b = (y2 - y1) / 2
  12.     ## https://ru.wikipedia.org/wiki/Эллипс#Уравнения_в_параметрической_форме
  13.     VERTEX = [ (a * cos(i * 2 * pi / vertex_count) + ( x1 + x2 ) / 2, \
  14.                 b * sin(i * 2 * pi / vertex_count) + ( y1 + y2 ) / 2 ) \
  15.                     for i in range(vertex_count) ]
  16.     mypol = polygon(VERTEX)
  17.     return mypol
  18.  
  19. def cat(x0=0,y0=0, size=880, flip=False):
  20.    
  21.     size_factor=size/880.0
  22.    
  23.     flip_factor = -1 if flip else 1
  24.     x0=x0+size_factor*flip_factor
  25.     x_factor=size_factor*flip_factor
  26.     y_factor=size_factor
  27.     print("cat size:",size_factor,x_factor,y_factor)
  28.    
  29.     brushColor('#c87137')
  30.     tail=ellipse(x0+460*x_factor, y0+100*y_factor,x0+842*x_factor,y0+214*y_factor)
  31.     body=ellipse(x0+92*x_factor,y0+2*y_factor,x0+605*x_factor,y0+274*y_factor)
  32.     leg1=ellipse(x0+52*x_factor, y0+110*y_factor,x0+122*x_factor,y0+250*y_factor)
  33.     head=circle(x0+114*x_factor, y0+125*y_factor, R=98*y_factor)
  34.     leg2=ellipse(x0+114*x_factor, y0+214*y_factor,x0+242*x_factor,y0+298*y_factor)
  35.     leg31=circle(x0+532*x_factor, y0+209*y_factor, R=82*y_factor)
  36.     leg32=ellipse(x0+580*x_factor, y0+231*y_factor,x0+640*x_factor,y0+367*y_factor)
  37.     brushColor('#88aa00')
  38.     eye1=ellipse(x0+46*x_factor, y0+98*y_factor,x0+102*x_factor,y0+162*y_factor)
  39.     eye2=ellipse(x0+140*x_factor, y0+98*y_factor,x0+196*x_factor,y0+162*y_factor)
  40.     brushColor('black')
  41.     eye1_black=ellipse(x0+78*x_factor, y0+103*y_factor,x0+84*x_factor,y0+156*y_factor)
  42.     eye1_black=ellipse(x0+170*x_factor, y0+103*y_factor,x0+176*x_factor,y0+156*y_factor)
  43.     brushColor('#c87137')
  44.     hear1=polygon([(x0+3*x_factor,y0+19*y_factor),  (x0+60*x_factor,y0+46*y_factor),  (x0+20*x_factor,y0+92*y_factor)])
  45.     hear2=polygon([(x0+212*x_factor,y0+11*y_factor),(x0+202*x_factor,y0+85*y_factor), (x0+158*x_factor,y0+43*y_factor)])
  46.     brushColor('#deaa87') #inside hear pink
  47.     hear1_ins=polygon([(x0+10*x_factor,y0+26*y_factor),  (x0+52*x_factor,y0+47*y_factor),  (x0+23*x_factor,y0+80*y_factor)])
  48.     hear2_ins=polygon([(x0+206*x_factor,y0+19*y_factor),(x0+198*x_factor,y0+73*y_factor), (x0+166*x_factor,y0+43*y_factor)])
  49.     nose=polygon([(x0+108*x_factor,y0+165*y_factor),(x0+127*x_factor,y0+165*y_factor), (x0+118*x_factor,y0+175*y_factor)])
  50.  
  51. if __name__ == "__main__":
  52.     canvasSize(1600,1123)
  53.     windowSize(1600,1123)
  54.     cat(0,0, flip=False)
  55.     cat(1000,400, size=440, flip=True)
  56.     cat(100,500,size=220, flip=False)
  57.  
  58.     run()
  59.  
  60.  
Add Comment
Please, Sign In to add comment