Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с циклом

Полина Мисник-Лямаева Ученик (161), открыт 2 недели назад
Ввести с клавиатуры число N и нарисовать N вертикальных рядов по 5 ромбиков Используя модуль Graph
Пример при N=2 на Python
Дополнен 2 недели назад
3 ответа
Андрей Орлов Ученик (150) 2 недели назад
Хорошо, вот код на Python с использованием модуля graphics.py (который обычно называется graphics), для рисования N вертикальных рядов по 5 ромбиков:
from graphics import *

def draw_diamond(center_x, center_y, size, color, win):
"""Рисует ромбик заданного размера и цвета в заданных координатах."""
p1 = Point(center_x, center_y - size)
p2 = Point(center_x + size, center_y)
p3 = Point(center_x, center_y + size)
p4 = Point(center_x - size, center_y)
diamond = Polygon(p1, p2, p3, p4)
diamond.setFill(color)
diamond.draw(win)

def draw_row_of_diamonds(start_x, start_y, row_height, size, row_count, color, win):
"""Рисует вертикальный ряд ромбиков."""
for i in range(row_count):
center_x = start_x
center_y = start_y + (i * row_height)
draw_diamond(center_x, center_y, size, color, win)

def main():
try:
n = int(input("Введите число N (количество вертикальных рядов): "))
except ValueError:
print("Ошибка: Введите целое число.")
return

win_width = 800
win_height = 600
win = GraphWin("Ромбики", win_width, win_height)
win.setBackground("white")

row_height = 100 # Вертикальный шаг между ромбиками
diamond_size = 30 # Размер ромбика
row_spacing = 150 # Горизонтальное расстояние между рядами
start_x = 100
start_y = 100
diamond_color = "blue"

for j in range(n):
draw_row_of_diamonds(start_x + (j * row_spacing), start_y, row_height, diamond_size, 5, diamond_color, win)

win.getMouse() # Ожидание клика для закрытия окна
win.close()

if __name__ == "__main__":
main()


Как это работает:

1. Импорт graphics: Импортируется модуль для работы с графикой. Убедитесь, что graphics.py находится в том же каталоге, что и ваш скрипт, или в пути поиска модулей Python.
2. draw_diamond(center_x, center_y, size, color, win):
• Рисует ромбик с заданным центром, размером и цветом.
• Создаёт четыре точки, формирующие ромб, и рисует полигон.
3. draw_row_of_diamonds(start_x, start_y, row_height, size, row_count, color, win):
• Рисует ряд ромбиков, используя draw_diamond.
• Принимает начальные координаты, высоту ряда, размер ромбиков, количество ромбиков в ряду, цвет и объект окна.
• В цикле рисует ромбики, смещая координаты по вертикали на величину row_height.
4. main():
• Запрашивает у пользователя количество рядов (N)
• Устанавливает параметры окна и рисования.
• В цикле по N вызывает draw_row_of_diamonds для каждого вертикального ряда.
• Ожидает щелчка мыши для закрытия окна.
5. Запуск:
• Убедитесь, что graphics.py находится в той же папке или в пути поиска модулей Python.
• Запустите этот скрипт Python.

Как использовать:

1. Сохраните код как draw_diamonds.py или с другим именем.
2. Убедитесь, что graphics.py лежит в той же папке. Если нет, скачайте его отсюда: http://mcsp.wartburg.edu/zelle/python/graphics.py
3. Запустите скрипт из терминала или IDE: python draw_diamonds.py
4. В командной строке введите целое число N и нажмите Enter.
5. Должно открыться окно с N вертикальными рядами ромбиков, по 5 в каждом ряду.
6. Щелкните в окне, чтобы его закрыть.

Настройки:

• win_width и win_height: Ширина и высота графического окна.
• row_height: Вертикальный интервал между ромбиками в ряду.
• diamond_size: Размер ромбиков.
• row_spacing: Горизонтальный интервал между рядами.
• start_x, start_y: Начальные координаты для первого ряда.
• diamond_color: Цвет ромбиков.
???? Мыслитель (5807) 2 недели назад
на кого учишься?
Полина Мисник-ЛямаеваУченик (161) 2 недели назад
Я только в 7 классе, только в программировании плохо разбираюсь
???? Мыслитель (5807) Полина Мисник-Лямаева, у гиги чата спроси от сбера
Похожие вопросы