2024-05-15 23:01:57 发布
网友
我试图用Python重新创建Twitter交互圈。但是,我被困在图像的创建上
到目前为止,我已经能够圈出方形头像,并将它们放置在使用枕头创建的空白图像的中心
如何围绕中心图像以圆形方式放置这些图像
我将感谢任何帮助。我是图像处理的初学者
计算位置需要相当基础的数学(圆的数学公式)
如果你有一个半径为R的圆,你必须放入角度angle
R
angle
x = R * cos(angle) + center_x y = R * sin(angle) + center_y
Top有角度0,bottom有角度180,left/right有角度90/270(或270/90)
Top
0
bottom
180
left
right
90
270
您必须记住,Python使用radians而不是math.sin(),math.cos()中的degrees,因此需要math.sin(math.radians(180))来计算180 degrees
radians
math.sin()
math.cos()
degrees
math.sin(math.radians(180))
180 degrees
如果你想把8图像放在圆上,那么你需要角度360 / 8,它给出45,所以第一个图像可以在角度45 * 1上,第二个在45 * 2上,等等
8
360 / 8
45
45 * 1
45 * 2
如果需要偏移5度,则(45 * 1) + 5,第二个在(45 * 2) + 5上,以此类推
5
(45 * 1) + 5
(45 * 2) + 5
我不确定图像的大小。圆圈有电路
circuit = 2 * PI * R
所以对于8图像,每个图像都应该使用小于diagonal的圆
diagonal
diagonal = circuit / 8
这就是半径
radius = diagonal / 2
要创建此圆,您需要使用图像
width = diagonal height = diagonal
如果你有8个图像,那么你有7个图像之间的差距
如果您想要大小为5像素的间隙,则可能需要
gap = 5 diagonal = (circuit - 7*gap) / 8
计算位置需要相当基础的数学(圆的数学公式)
如果你有一个半径为
R
的圆,你必须放入角度angle
Top
有角度0
,bottom
有角度180
,left
/right
有角度90
/270
(或270
/90
)您必须记住,Python使用
radians
而不是math.sin()
,math.cos()
中的degrees
,因此需要math.sin(math.radians(180))
来计算180 degrees
如果你想把
8
图像放在圆上,那么你需要角度360 / 8
,它给出45
,所以第一个图像可以在角度45 * 1
上,第二个在45 * 2
上,等等如果需要偏移
5
度,则(45 * 1) + 5
,第二个在(45 * 2) + 5
上,以此类推我不确定图像的大小。圆圈有电路
所以对于
8
图像,每个图像都应该使用小于diagonal
的圆这就是半径
要创建此圆,您需要使用图像
如果你有8个图像,那么你有7个图像之间的差距
如果您想要大小为5像素的间隙,则可能需要
相关问题 更多 >
编程相关推荐