A = π r², , 1). r x² + y² = r². () x = √ (r² - y²). , .
from math import pi, sqrt, ceil
text = """Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."""
radius = ceil(sqrt(len(text)/pi))
text_iter = iter(text)
for i in range(-radius, radius+1):
num = ceil(sqrt(radius**2 - i**2))
print("{:^{}}".format("".join(next(text_iter, ".") for _ in range(2*num)), 2*radius))
:
Lorem ipsu
m dolor sit am
et, consectetur
adipiscing elit, s
ed do eiusmod tempor
incididunt ut labore
et dolore magna aliqua
. Ut enim ad minim venia
m, quis nostrud exercita
tion ullamco laboris nis
i ut aliquip ex ea commo
do consequat. Duis aute
irure dolor in reprehend
erit in voluptate velit
esse cillum dolore eu fu
giat nulla pariatur. Exc
epteur sint occaecat c
upidatat non proident,
sunt in culpa qui o
fficia deserunt mo
llit anim id est
laborum......
..........
, , ( , ceil
). , .
( ), text = ""
1) , , , . , , .
, , (!) ( ), .:
radius = ceil(sqrt(len(text)/(2*pi))) # calculate with 2 characters per "cell"
for i in range(-radius, radius+1):
num = ceil(sqrt(radius**2 - i**2) * 2)
print("{:^{}}".format("".join(next(text_iter, ".") for _ in range(2*num)), 4*radius))
:
Lorem ipsum dolor
sit amet, consectetur ad
ipiscing elit, sed do eiusmo
d tempor incididunt ut labore
et dolore magna aliqua. Ut enim ad
minim veniam, quis nostrud exerci
tation ullamco laboris nisi ut aliqu
ip ex ea commodo consequat. Duis aut
e irure dolor in reprehenderit in vo
luptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sin
t occaecat cupidatat non proident,
sunt in culpa qui officia deserun
t mollit anim id est laborum..
............................
........................
..................