Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
2 / 2 / 0
Регистрация: 06.04.2020
Сообщений: 16

Точка, точка, запятая

02.05.2022, 09:12. Показов 3920. Ответов 2

Студворк — интернет-сервис помощи студентам
Нарисуйте человечка по образцу. Для этого нужно написать функцию human(), принимающую цвет фона, цвет линии, масштаб – размер одной клетки изображения в пикселях – и толщину линии. Нужно на полотне 16х21 клетку нарисовать человечка в указанном на рисунке масштабе. Клетки и дополнительные построения изображать не нужно. Полученную картинку сохранить в файл human.png.

Как построить и расположить рот человечка, поясняется на врезке слева (квадрат со стороной 4 клетки, верхний левый угол в точке (клетка, пол клетки)). Каждый сустав и глаза человечка – это круг радиуса 1/5 от размера клетки (деление нацело), суставы не залиты, глаза залиты.
PIC

Формат ввода
Пример вызова функции:
human(’#00fAdc’, (200, 0, 0), 50, 7)
Формат вывода
Файл human.png
Миниатюры
Точка, точка, запятая   Точка, точка, запятая  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.05.2022, 09:12
Ответы с готовыми решениями:

Дана точка M с координатами x и y. Определить лежит ли точка M(x,y) в закрашенной области
Дана точка M с координатами x и y. Определить лежит ли точка M(x,y) в закрашенной области

Дана точка M с координатами x и y. Определить лежит ли точка M(x,y) в закрашенной области
Дана точка M с координатами x и y. Определить лежит ли точка M(x,y) в закрашенной области

Дана точка M с координатами x и y. Определить лежит ли точка M(x,y) в закрашенной области
Дана точка M с координатами x и y. Определить лежит ли точка M(x,y) в закрашенной области https://i.**********/39ALOgN.jpg"]

2
2 / 0 / 2
Регистрация: 18.04.2021
Сообщений: 3
03.05.2022, 20:14
Лучший ответ Сообщение было отмечено Poddelka364 как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from PIL import Image, ImageDraw
 
 
def human(fcol, lcol, k, lw):
    im = Image.new("RGB", (16 * k, 21 * k), fcol)
    draw = ImageDraw.Draw(im)
    draw.ellipse((6 * k, 1 * k, 10 * k, 5 * k), width=lw, outline=lcol) #голова
    draw.ellipse((7 * k - k // 5, 3 * k - k // 5, 7 * k + k // 5, 3 * k + k // 5), fill=lcol, width=lw, outline=lcol) #левый глаз
    draw.ellipse((9 * k - k // 5, 3 * k - k // 5, 9 * k + k // 5, 3 * k + k // 5), fill=lcol, width=lw, outline=lcol) #правый глаз
    draw.arc((6 * k, 1 * k - k // 2, 10 * k, 5 * k - k // 2), 45, 45 + 90, width=lw, fill=lcol) #рот
    #плечи
    draw.ellipse((7 * k - k // 5, 6 * k - k // 5, 7 * k + k // 5, 6 * k + k // 5), width=lw, outline=lcol)
    draw.ellipse((9 * k - k // 5, 6 * k - k // 5, 9 * k + k // 5, 6 * k + k // 5), width=lw, outline=lcol)
    draw.line((7 * k, 6 * k, 9 * k, 6 * k), width=lw, fill=lcol)
    #тело
    draw.ellipse((8 * k - k // 5, 11 * k - k // 5, 8 * k + k // 5, 11 * k + k // 5), width=lw, outline=lcol)
    draw.line((8 * k, 5 * k, 8 * k, 11 * k), width=lw, fill=lcol)
    #левая рука
    draw.ellipse((4 * k - k // 5, 10 * k - k // 5, 4 * k + k // 5, 10 * k + k // 5), width=lw, outline=lcol)
    draw.line((4 * k, 10 * k, 7 * k, 6 * k), width=lw, fill=lcol)
    draw.line((4 * k, 10 * k, 6 * k, 13 * k), width=lw, fill=lcol)
    #правая рука
    draw.ellipse((12 * k - k // 5, 10 * k - k // 5, 12 * k + k // 5, 10 * k + k // 5), width=lw, outline=lcol)
    draw.line((9 * k, 6 * k, 12 * k, 10 * k), width=lw, fill=lcol)
    draw.line((12 * k, 10 * k, 15 * k, 7 * k), width=lw, fill=lcol)
    #левая нога
    draw.ellipse((6 * k - k // 5, 15 * k - k // 5, 6 * k + k // 5, 15 * k + k // 5), width=lw, outline=lcol)
    draw.ellipse((5 * k - k // 5, 20 * k - k // 5, 5 * k + k // 5, 20 * k + k // 5), width=lw, outline=lcol)
    draw.line((8 * k, 11 * k, 6 * k, 15 * k), width=lw, fill=lcol)
    draw.line((6 * k, 15 * k, 5 * k, 20 * k), width=lw, fill=lcol)
    draw.line((5 * k, 20 * k, 7 * k, 20 * k), width=lw, fill=lcol)
    #правая нога
    draw.ellipse((11 * k - k // 5, 10 * k - k // 5, 11 * k + k // 5, 10 * k + k // 5), width=lw, outline=lcol)
    draw.ellipse((13 * k - k // 5, 15 * k - k // 5, 13 * k + k // 5, 15 * k + k // 5), width=lw, outline=lcol)
    draw.line((8 * k, 11 * k, 11 * k, 10 * k), width=lw, fill=lcol)
    draw.line((11 * k, 10 * k, 13 * k, 15 * k), width=lw, fill=lcol)
    draw.line((13 * k, 15 * k, 15 * k, 14 * k), width=lw, fill=lcol)
    im.save('human.png')
0
Вирусоборец
 Аватар для thyrex
14445 / 7486 / 1580
Регистрация: 06.09.2009
Сообщений: 27,130
03.05.2022, 20:36
DuriaginA,
Цитата Сообщение от Poddelka364 Посмотреть сообщение
Пример вызова функции:
human(’#00fAdc’, (200, 0, 0), 50, 7)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.05.2022, 20:36
Помогаю со студенческими работами здесь

Дана точка на плоскости с координатами (х, у). Определить, где лежит точка: внутри, вне или на границе графика
Здравствуйте, помогите мне, пожалуйста, с этой задачей: "Дана точка на плоскости с координатами (х, у). Составить программу, которая...

Именованная точка
Добавим точкам класса Point имена. При инициализации имя будет указываться в качестве первого параметра Point(name, x, y). Определим с...

Точка на прямой
Здравствуйте! Можете пожалуйста помочь решить с использованием функции def без return) Напишите функцию line(s, t), которая получает...

Точка в круге
Даны координаты точки, координаты центра круга и его радиус. Определить принадлежит ли данная точка кругу. Будем считать, что точка...

Треугольник и точка
Памагите решить задачу Треугольник и точка В декартовой системе координат на плоскости заданы координаты вершин треугольника и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru