如何在Python中沿循环路径粘贴图像?

2024-05-15 23:01:57 发布

您现在位置:Python中文网/ 问答频道 /正文

导言

我试图用Python重新创建Twitter交互圈。但是,我被困在图像的创建上

到目前为止,我已经能够圈出方形头像,并将它们放置在使用枕头创建的空白图像的中心

如何围绕中心图像以圆形方式放置这些图像

我将感谢任何帮助。我是图像处理的初学者

样本图像

enter image description here

我使用枕头所能达到的效果:

enter image description here


Tags: 图像方式twitter圆形中心图像处理空白枕头
1条回答
网友
1楼 · 发布于 2024-05-15 23:01:57

计算位置需要相当基础的数学(圆的数学公式)

如果你有一个半径为R的圆,你必须放入角度angle

  x = R * cos(angle) + center_x
  y = R * sin(angle) + center_y 

Top有角度0bottom有角度180left/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上,以此类推


我不确定图像的大小。圆圈有电路

 circuit = 2 * PI * R

所以对于8图像,每个图像都应该使用小于diagonal的圆

 diagonal = circuit / 8 

这就是半径

 radius = diagonal / 2

要创建此圆,您需要使用图像

 width  = diagonal
 height = diagonal

如果你有8个图像,那么你有7个图像之间的差距

如果您想要大小为5像素的间隙,则可能需要

 gap = 5

 diagonal = (circuit - 7*gap) / 8 

相关问题 更多 >