aW1wb3J0IG1hdHBsb3RsaWIucHlwbG90IGFzIHBsdAppbXBvcnQgbWF0cGxvdGxpYi5wYXRjaGVzIGFzIHBhdGNoZXMKZnJvbSBtYXRoIGltcG9ydCBzcXJ0CgpmaWcsIGF4cyA9IHBsdC5zdWJwbG90cygyLCAzLCBmaWdzaXplPSgxMiwgOCkpCmF4cyA9IGF4cy5mbGF0dGVuKCkKCiMg0KHQutGA0YvQstCw0LXQvCDQv9C+0YHQu9C10LTQvdC40LkgKDYt0LkpINC/0L7QtNCz0YDQsNGE0LjQugpheHNbNV0uYXhpcygnb2ZmJykKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLSAxLiDQntC60YDRg9Cz0LvQuNGC0LUg0L3QsCDQvtC60YDRg9C20L3QvtGB0YLRjCAo0L/RgNGP0LzQvtGD0LPQvtC70YzQvdC40Log0LIg0L7QutGA0YPQttC90L7RgdGC0LgpIC0tLS0tLS0tLS0tLS0tLS0tLS0KYXgxID0gYXhzWzBdCmF4MS5zZXRfdGl0bGUoJzEuINCe0LrRgNGD0LPQu9C10L3QuNC1INC90LAg0L7QutGA0YPQttC90L7RgdGC0YwnLCBmb250c2l6ZT0xMCkKY2lyY2xlID0gcGx0LkNpcmNsZSgoMCwgMCksIDEsIGZpbGw9RmFsc2UsIGVkZ2Vjb2xvcj0nYmx1ZScsIGxpbmV3aWR0aD0yKQpheDEuYWRkX3BhdGNoKGNpcmNsZSkKIyDQn9GA0Y/QvNC+0YPQs9C+0LvRjNC90LjQuiwg0LLQv9C40YHQsNC90L3Ri9C5INCyINC+0LrRgNGD0LbQvdC+0YHRgtGMICjQutCy0LDQtNGA0LDRgikKcmVjdCA9IHBhdGNoZXMuUmVjdGFuZ2xlKCgtMC43LCAtMC41KSwgMS40LCAxLjAsIGZpbGw9RmFsc2UsIGVkZ2Vjb2xvcj0ncmVkJywgbGluZXdpZHRoPTIpCmF4MS5hZGRfcGF0Y2gocmVjdCkKYXgxLnNldF94bGltKC0xLjIsIDEuMikKYXgxLnNldF95bGltKC0xLjIsIDEuMikKYXgxLnNldF9hc3BlY3QoJ2VxdWFsJykKYXgxLmdyaWQoVHJ1ZSwgbGluZXN0eWxlPSctLScsIGFscGhhPTAuNSkKYXgxLnRleHQoMCwgLTEuMSwgJ9Cf0YDRj9C80L7Rg9Cz0L7Qu9GM0L3QuNC6INC80L7QttC90L4g0LLQv9C40YHQsNGC0Ywg0LIg0L7QutGA0YPQttC90L7RgdGC0YwnLCBoYT0nY2VudGVyJywgZm9udHNpemU9OCkKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLSAyLiDQlNCy0LAg0L/RgNGP0LzQvtGD0LPQvtC70YzQvdC40LrQsCDRgSDQvtC00LjQvdCw0LrQvtCy0YvQvNC4INGB0YLQvtGA0L7QvdCw0LzQuCAtLS0tLS0tLS0tLS0tLS0tLS0tCmF4MiA9IGF4c1sxXQpheDIuc2V0X3RpdGxlKCcyLiDQlNCy0LAg0YDQsNCy0L3Ri9GFINC/0YDRj9C80L7Rg9Cz0L7Qu9GM0L3QuNC60LAnLCBmb250c2l6ZT0xMCkKcmVjdDEgPSBwYXRjaGVzLlJlY3RhbmdsZSgoMCwgMCksIDIsIDEsIGZpbGw9RmFsc2UsIGVkZ2Vjb2xvcj0nZ3JlZW4nLCBsaW5ld2lkdGg9MikKcmVjdDIgPSBwYXRjaGVzLlJlY3RhbmdsZSgoMy41LCAwKSwgMiwgMSwgZmlsbD1GYWxzZSwgZWRnZWNvbG9yPSdncmVlbicsIGxpbmV3aWR0aD0yKQpheDIuYWRkX3BhdGNoKHJlY3QxKQpheDIuYWRkX3BhdGNoKHJlY3QyKQpheDIudGV4dCgxLCAtMC4zLCAnYT0yJywgaGE9J2NlbnRlcicpCmF4Mi50ZXh0KDEsIDEuMSwgJ2I9MScsIGhhPSdjZW50ZXInKQpheDIudGV4dCg0LjUsIC0wLjMsICdhPTInLCBoYT0nY2VudGVyJykKYXgyLnRleHQoNC41LCAxLjEsICdiPTEnLCBoYT0nY2VudGVyJykKYXgyLnNldF94bGltKC0wLjUsIDYpCmF4Mi5zZXRfeWxpbSgtMC41LCAxLjUpCmF4Mi5zZXRfYXNwZWN0KCdlcXVhbCcpCmF4Mi5ncmlkKFRydWUsIGxpbmVzdHlsZT0nLS0nLCBhbHBoYT0wLjUpCgojIC0tLS0tLS0tLS0tLS0tLS0tLS0gMy4g0KLRgNC10YPQs9C+0LvRjNC90YvQuSDRgtGA0LXRg9Cz0L7Qu9GM0L3QuNC6ICjRgNCw0LfQvdC+0YHRgtC+0YDQvtC90L3QuNC5KSAtLS0tLS0tLS0tLS0tLS0tLS0tCmF4MyA9IGF4c1syXQpheDMuc2V0X3RpdGxlKCczLiDQotGA0LXRg9Cz0L7Qu9GM0L3Ri9C5INGC0YDQtdGD0LPQvtC70YzQvdC40LonLCBmb250c2l6ZT0xMCkKdHJpMyA9IHBhdGNoZXMuUG9seWdvbihbWzAsMF0sIFszLDBdLCBbMSwyXV0sIGZpbGw9RmFsc2UsIGVkZ2Vjb2xvcj0ncHVycGxlJywgbGluZXdpZHRoPTIpCmF4My5hZGRfcGF0Y2godHJpMykKYXgzLnRleHQoMCwgLTAuMiwgJ0EnLCBmb250c2l6ZT05KQpheDMudGV4dCgzLCAtMC4yLCAnQicsIGZvbnRzaXplPTkpCmF4My50ZXh0KDEsIDIuMSwgJ0MnLCBmb250c2l6ZT05KQpheDMuc2V0X3hsaW0oLTAuNSwgMy41KQpheDMuc2V0X3lsaW0oLTAuNSwgMi41KQpheDMuc2V0X2FzcGVjdCgnZXF1YWwnKQpheDMuZ3JpZChUcnVlLCBsaW5lc3R5bGU9Jy0tJywgYWxwaGE9MC41KQpheDMudGV4dCgxLjUsIC0wLjcsICfQoNCw0LfQvdC+0YHRgtC+0YDQvtC90L3QuNC5INGC0YDQtdGD0LPQvtC70YzQvdC40LonLCBoYT0nY2VudGVyJywgZm9udHNpemU9OCkKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLSA0LiDQn9GA0Y/QvNC+0YPQs9C+0LvRjNC90YvQuSDRgtGA0LXRg9Cz0L7Qu9GM0L3QuNC6IC0tLS0tLS0tLS0tLS0tLS0tLS0KYXg0ID0gYXhzWzNdCmF4NC5zZXRfdGl0bGUoJzQuINCf0YDRj9C80L7Rg9Cz0L7Qu9GM0L3Ri9C5INGC0YDQtdGD0LPQvtC70YzQvdC40LonLCBmb250c2l6ZT0xMCkKYXg0LnBsb3QoWzAsM10sIFswLDBdLCAnYmxhY2snLCBsaW5ld2lkdGg9MikgICAjINC60LDRgtC10YIgQUIKYXg0LnBsb3QoWzAsMF0sIFswLDRdLCAnYmxhY2snLCBsaW5ld2lkdGg9MikgICAjINC60LDRgtC10YIgQUMKYXg0LnBsb3QoWzMsMF0sIFswLDRdLCAnYmxhY2snLCBsaW5ld2lkdGg9MikgICAjINCz0LjQv9C+0YLQtdC90YPQt9CwIEJDCiMg0LrQstCw0LTRgNCw0YLQuNC6INC/0YDRj9C80L7Qs9C+INGD0LPQu9CwCmF4NC5wbG90KFswLDAuNV0sIFswLDBdLCAnYmxhY2snLCBsaW5ld2lkdGg9MSkKYXg0LnBsb3QoWzAsMF0sIFswLjUsMC41XSwgJ2JsYWNrJywgbGluZXdpZHRoPTEpCmF4NC5wbG90KFswLDAuNV0sIFswLjUsMC41XSwgJ2JsYWNrJywgbGluZXdpZHRoPTEpCmF4NC5wbG90KFswLjUsMC41XSwgWzAsMC41XSwgJ2JsYWNrJywgbGluZXdpZHRoPTEpCmF4NC50ZXh0KDMuMSwgLTAuMiwgJ0InLCBmb250c2l6ZT05KQpheDQudGV4dCgtMC4yLCA0LjEsICdDJywgZm9udHNpemU9OSkKYXg0LnRleHQoLTAuMiwgLTAuMiwgJ0EnLCBmb250c2l6ZT05KQpheDQuc2V0X3hsaW0oLTAuNSwgMy41KQpheDQuc2V0X3lsaW0oLTAuNSwgNC41KQpheDQuc2V0X2FzcGVjdCgnZXF1YWwnKQpheDQuZ3JpZChUcnVlLCBsaW5lc3R5bGU9Jy0tJywgYWxwaGE9MC41KQpheDQudGV4dCgxLjUsIC0wLjYsICcmYW5nO0EgPSA5MCZkZWc7JywgaGE9J2NlbnRlcicsIGZvbnRzaXplPTkpCgojIC0tLS0tLS0tLS0tLS0tLS0tLS0gNS4g0KDQsNGB0L/QvtC70L7QttC40YLQtSDQv9GA0Y/QvNC+0YPQs9C+0LvRjNC90LjQuiDQuCDRgtGA0LXRg9Cz0L7Qu9GM0L3QuNC6IC0tLS0tLS0tLS0tLS0tLS0tLS0KYXg1ID0gYXhzWzRdCmF4NS5zZXRfdGl0bGUoJzUuINCg0LDRgdC/0L7Qu9C+0LbQtdC90LjQtSDQv9GA0Y/QvNC+0YPQs9C+0LvRjNC90LjQutCwINC4INGC0YDQtdGD0LPQvtC70YzQvdC40LrQsCcsIGZvbnRzaXplPTEwKQpyZWN0NSA9IHBhdGNoZXMuUmVjdGFuZ2xlKCgwLDApLCAyLCAxLjUsIGZpbGw9RmFsc2UsIGVkZ2Vjb2xvcj0nb3JhbmdlJywgbGluZXdpZHRoPTIpCnRyaTUgPSBwYXRjaGVzLlBvbHlnb24oW1szLjUsMF0sIFs1LDBdLCBbNC4yLDEuNV1dLCBmaWxsPUZhbHNlLCBlZGdlY29sb3I9J2Jyb3duJywgbGluZXdpZHRoPTIpCmF4NS5hZGRfcGF0Y2gocmVjdDUpCmF4NS5hZGRfcGF0Y2godHJpNSkKYXg1LnNldF94bGltKC0wLjUsIDUuNSkKYXg1LnNldF95bGltKC0wLjUsIDIpCmF4NS5zZXRfYXNwZWN0KCdlcXVhbCcpCmF4NS5ncmlkKFRydWUsIGxpbmVzdHlsZT0nLS0nLCBhbHBoYT0wLjUpCmF4NS50ZXh0KDIuNzUsIC0wLjcsICfQn9GA0Y/QvNC+0YPQs9C+0LvRjNC90LjQuiDQuCDRgtGA0LXRg9Cz0L7Qu9GM0L3QuNC6INGA0Y/QtNC+0LwnLCBoYT0nY2VudGVyJywgZm9udHNpemU9OSkKCnBsdC50aWdodF9sYXlvdXQoKQpwbHQuc2hvdygp
import matplotlib.pyplot as plt
import matplotlib.patches as patches
from math import sqrt
fig, axs = plt.subplots(2, 3, figsize=(12, 8))
axs = axs.flatten()
# Скрываем последний (6-й) подграфик
axs[5].axis('off')
# ------------------- 1. Округлите на окружность (прямоугольник в окружности) -------------------
ax1 = axs[0]
ax1.set_title('1. Округление на окружность', fontsize=10)
circle = plt.Circle((0, 0), 1, fill=False, edgecolor='blue', linewidth=2)
ax1.add_patch(circle)
# Прямоугольник, вписанный в окружность (квадрат)
rect = patches.Rectangle((-0.7, -0.5), 1.4, 1.0, fill=False, edgecolor='red', linewidth=2)
ax1.add_patch(rect)
ax1.set_xlim(-1.2, 1.2)
ax1.set_ylim(-1.2, 1.2)
ax1.set_aspect('equal')
ax1.grid(True, linestyle='--', alpha=0.5)
ax1.text(0, -1.1, 'Прямоугольник можно вписать в окружность', ha='center', fontsize=8)
# ------------------- 2. Два прямоугольника с одинаковыми сторонами -------------------
ax2 = axs[1]
ax2.set_title('2. Два равных прямоугольника', fontsize=10)
rect1 = patches.Rectangle((0, 0), 2, 1, fill=False, edgecolor='green', linewidth=2)
rect2 = patches.Rectangle((3.5, 0), 2, 1, fill=False, edgecolor='green', linewidth=2)
ax2.add_patch(rect1)
ax2.add_patch(rect2)
ax2.text(1, -0.3, 'a=2', ha='center')
ax2.text(1, 1.1, 'b=1', ha='center')
ax2.text(4.5, -0.3, 'a=2', ha='center')
ax2.text(4.5, 1.1, 'b=1', ha='center')
ax2.set_xlim(-0.5, 6)
ax2.set_ylim(-0.5, 1.5)
ax2.set_aspect('equal')
ax2.grid(True, linestyle='--', alpha=0.5)
# ------------------- 3. Треугольный треугольник (разносторонний) -------------------
ax3 = axs[2]
ax3.set_title('3. Треугольный треугольник', fontsize=10)
tri3 = patches.Polygon([[0,0], [3,0], [1,2]], fill=False, edgecolor='purple', linewidth=2)
ax3.add_patch(tri3)
ax3.text(0, -0.2, 'A', fontsize=9)
ax3.text(3, -0.2, 'B', fontsize=9)
ax3.text(1, 2.1, 'C', fontsize=9)
ax3.set_xlim(-0.5, 3.5)
ax3.set_ylim(-0.5, 2.5)
ax3.set_aspect('equal')
ax3.grid(True, linestyle='--', alpha=0.5)
ax3.text(1.5, -0.7, 'Разносторонний треугольник', ha='center', fontsize=8)
# ------------------- 4. Прямоугольный треугольник -------------------
ax4 = axs[3]
ax4.set_title('4. Прямоугольный треугольник', fontsize=10)
ax4.plot([0,3], [0,0], 'black', linewidth=2) # катет AB
ax4.plot([0,0], [0,4], 'black', linewidth=2) # катет AC
ax4.plot([3,0], [0,4], 'black', linewidth=2) # гипотенуза BC
# квадратик прямого угла
ax4.plot([0,0.5], [0,0], 'black', linewidth=1)
ax4.plot([0,0], [0.5,0.5], 'black', linewidth=1)
ax4.plot([0,0.5], [0.5,0.5], 'black', linewidth=1)
ax4.plot([0.5,0.5], [0,0.5], 'black', linewidth=1)
ax4.text(3.1, -0.2, 'B', fontsize=9)
ax4.text(-0.2, 4.1, 'C', fontsize=9)
ax4.text(-0.2, -0.2, 'A', fontsize=9)
ax4.set_xlim(-0.5, 3.5)
ax4.set_ylim(-0.5, 4.5)
ax4.set_aspect('equal')
ax4.grid(True, linestyle='--', alpha=0.5)
ax4.text(1.5, -0.6, '∠A = 90°', ha='center', fontsize=9)
# ------------------- 5. Расположите прямоугольник и треугольник -------------------
ax5 = axs[4]
ax5.set_title('5. Расположение прямоугольника и треугольника', fontsize=10)
rect5 = patches.Rectangle((0,0), 2, 1.5, fill=False, edgecolor='orange', linewidth=2)
tri5 = patches.Polygon([[3.5,0], [5,0], [4.2,1.5]], fill=False, edgecolor='brown', linewidth=2)
ax5.add_patch(rect5)
ax5.add_patch(tri5)
ax5.set_xlim(-0.5, 5.5)
ax5.set_ylim(-0.5, 2)
ax5.set_aspect('equal')
ax5.grid(True, linestyle='--', alpha=0.5)
ax5.text(2.75, -0.7, 'Прямоугольник и треугольник рядом', ha='center', fontsize=9)
plt.tight_layout()
plt.show()