1-ую часть написал, но в функции proverka, Pyscripter ругается на строчку:
if sqrt((x[i] - x[i+1])**2 + (y[i] - y[i+1])**2) > r[i] + r[i+1]:
Также вопрос со 2-ым пунктом, можно ли как-нибудь в окружности вписать стрелки и повернуть их на угол?
Код для 1-ого пункта:
import matplotlib.pyplot as plt import random from math import sqrt k = 100 # число прогонов n = 10 # нужное чилсо окружностей x = [0]*k y = [0]*k r = [0]*k def proverka(): for i in range(k+1): if sqrt((x[i] - x[i+1])**2 + (y[i] - y[i+1])**2) > r[i] + r[i+1]: True else: False def main(): ii = 0 for i in range(k): x[i] = random.uniform(0,100) y[i] = random.uniform(0,100) r[i] = random.uniform(1,15) if x[i]+r[i]-100 <= 0 and y[i]+r[i]-100 <= 0 and r[i]-x[i] <= 0 and r[i]-y[i] <= 0: if proverka(): circle=plt.Circle((x[i],y[i]),r[i],color='black',fill=False) fig = plt.gcf() fig.gca().add_artist(circle) ii = ii + 1 if ii == n: break plt.axis([0,100,0,100]) plt.show() if __name__ == '__main__': main()