Условия · 13 из 24
Звёздный полёт
Ночью у шлагбаума тихо, и Геннадий поставил на монитор будки заставку «звёздный полёт»: звёзды летят навстречу из глубины экрана. Устроена она просто. У звезды три координаты: x — вбок, y — вверх, z — вглубь, от глаза. Чем звезда глубже, тем ближе к середине экрана она видна: экранное смещение — это x * fokus // z. Звезда, пролетевшая мимо глаза (z ноль или меньше) или ушедшая за край экрана, не рисуется.
Что сделать
Скажите, в какой точке экрана видна звезда, или что её не видно — она позади или за краем.
Что приходит
x,y,z— где звезда: вбок, вверх и вглубь, целыеfokus— насколько заставка «увеличивает», целоеshirinaиvysota— размер экрана в точках
Что вернуть
Пару (sx, sy) — точку на экране, или None, если звезда позади глаза или не попадает на экран.
Допишите функцию na_ekrane в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
с графикой когда тесты пройдут, ответ вашей функции нарисуется · все задачи с графикой
na_ekrane(100, 50, 400, 200, 320, 200)
(210, 75)
Если z <= 0 — звезда позади глаза, ответ None.
Иначе экранная точка:
sx = shirina // 2 + (x * fokus // z)sy = vysota // 2 - (y * fokus // z)— минус, потому что на экране строки считают сверху вниз, аyсмотрит вверх.
Всё в целых числах, деление — // (с округлением вниз). Экран — точки с 0 <= sx < shirina и 0 <= sy < vysota; если точка вне этого — ответ None.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.