Σήμερα σχεδιάσαμε ένα Χριστουγεννιάτικο δέντρο με python.
import matplotlib.pyplot as plt
import math
import random
def f(x):
return 1/(x-0.1)
def g(x): return f(-x)
def plotfunction(a, b, f, N):
h = (b-a)/N
x = [a+i*h for i in range(N+1)]
y = [f(t) for t in x]
plt.plot(x, y, '#8B4513')
plt.axes().set_aspect('equal')
plt.axis([-7, 7, 0, 20])
plt.axis('off')
plotfunction(0.17, 3, f, 200)
plotfunction(-3, -0.17, g, 200)
def plotparametric(a, b, fx, fy, N, color):
h = (b-a)/N
t = [a+i*h for i in range(N+1)]
x = [fx(tt) for tt in t]
y = [fy(tt) for tt in t]
plt.plot(x, y, color)
def circle(a, b, r, color):
def fx(t):
return a+r*math.cos(t)
def fy(t):
return b+r*math.sin(t)
plotparametric(0, 2*math.pi, fx, fy, 100, color)
T = 220*4/9
L = 2*math.pi/T
def fx(t):
return (5-5/220*t+ 0.3*math.cos(L*t))*math.cos(t)
def fy(t):
return 3 + 0.05*t + 0.5*math.sin(t)
plotparametric(0, 220, fx, fy, 2000, '#00FF00')
for t in range(0, 220, 10):
circle(fx(t), fy(t), 0.3, color='r')
#circle(fx(10), fy(10), 0.3, color='r')
def star(a, b, u, v, color):
x = [a]
y = [b]
c = math.cos(4*math.pi/5)
s = -math.sin(4*math.pi/5)
for i in range(5):
xlast = x[-1]
ylast = y[-1]
xnext = xlast+u
ynext = ylast+v
x.append(xnext)
y.append(ynext)
unew = c*u+s*v
vnew = -s*u+c*v
u, v = unew, vnew
plt.plot(x, y, color)
star(fx(220), fy(220), 0.8, 2, '#FFFF00')
plt.text(-7, 17, 'Καλά Χριστούγεννα!', color='#FF0000', fontsize=14, fontweight='bold')
plt.text(-10, -3, 'Τμήμα Μαθηματικών και Εφαρμ. Μαθηματικών\n Γλώσσα Προγραμματισμού Ι - Τμ. Α\n 20 Δεκ 2017')
plt.show()