From 18a202ae202c2e8745c3c01b7f2496b80891015c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=B3=D0=BE=D1=80=D1=8C?= Date: Wed, 4 Mar 2026 14:46:08 +0300 Subject: [PATCH] =?UTF-8?q?=D1=81=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20=D0=BD?= =?UTF-8?q?=D0=BE=D0=BC=D0=B5=D1=80=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 2.py | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/2.py b/2.py index e69de29..77314ef 100644 --- a/2.py +++ b/2.py @@ -0,0 +1,79 @@ +import pygame +from pygame.draw import * +import math + +pygame.init() + +FPS = 30 +WIDTH, HEIGHT = 1200, 800 +screen = pygame.display.set_mode((WIDTH, HEIGHT)) +pygame.display.set_caption("Горный пейзаж") + +# Цвета +SKY = (255, 200, 125) # небо +SUN = (255, 255, 0) # солнце +BEIGE = (245, 220, 200) # полоса +MOUNTAINS_FAR = (255, 100, 0) # дальние горы +MOUNTAINS_NEAR = (150, 0, 0) # ближние горы +GROUND = (200, 100, 200) # земля + +def rotate_point(point, center, angle_deg): + """Поворачивает точку относительно центра по часовой стрелке""" + angle_rad = math.radians(angle_deg) + x, y = point + cx, cy = center + + x -= cx + y -= cy + + # Поворот по часовой стрелке + x_rotated = x * math.cos(angle_rad) + y * math.sin(angle_rad) + y_rotated = -x * math.sin(angle_rad) + y * math.cos(angle_rad) + + return (x_rotated + cx, y_rotated + cy) + +def draw_mountain_rotated(surface, color, points, center, angle): + """Рисует повёрнутую гору""" + rotated_points = [rotate_point(p, center, angle) for p in points] + polygon(surface, color, rotated_points) + +# Основной рисунок +screen.fill(SKY) + +rect(screen, BEIGE, (0, 120, WIDTH, 200)) # Здесь было просто rect, а нужно rect(screen, ...) + +circle(screen, SUN, (WIDTH//2, 80), 50) + +# Центр поворота для дальнего ряда +rotate_center = (WIDTH//2, 400) + +# ВТОРОЙ РЯД - ПОВЁРНУТ НА 10° ПО ЧАСОВОЙ СТРЕЛКЕ +far_mountains_points = [ + (-100, 520), (0, 420), (100, 440), (200, 400), (300, 430), + (400, 390), (500, 420), (600, 380), (700, 410), (800, 370), + (900, 400), (1000, 360), (1100, 390), (1200, 350), (1300, 380), + (1400, 340), (1500, 420), (1600, 520) +] + +draw_mountain_rotated(screen, MOUNTAINS_FAR, far_mountains_points, rotate_center, 10) + +# БЛИЖНИЙ РЯД +polygon(screen, MOUNTAINS_NEAR, + [(-200, HEIGHT-150), (-50, 590), (100, 630), (250, 570), (400, 610), + (550, 550), (700, 590), (850, 530), (1000, 570), (1150, 510), + (1300, 550), (1450, 490), (1600, 530), (1750, 450), (1900, HEIGHT-170)]) + +rect(screen, GROUND, (0, HEIGHT-165, WIDTH, 1000)) + +pygame.display.update() +clock = pygame.time.Clock() +finished = False + +while not finished: + clock.tick(FPS) + for event in pygame.event.get(): + if event.type == pygame.QUIT: + finished = True + +pygame.quit() +sys.exit() \ No newline at end of file