You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pygame中不使用图片绘制带圆角边缘的线条

Pygame无外部资源绘制圆角边缘线条方案

无需引入外部图片,直接用Pygame内置绘图API即可实现目标效果,核心逻辑是先绘制基础粗线条,再在线条两端补画同色圆形覆盖原生方头,实现圆角效果。

实现步骤

  • 提前确定线条的起点、终点、粗细、颜色四个核心参数
  • 调用pygame.draw.line()绘制对应参数的粗线条,width参数设为目标线条粗细
  • 分别以线条起点、终点为圆心,以线条粗细的1/2为半径,调用pygame.draw.circle()绘制两个实心同色圆形,刚好和粗线条两端拼接

示例代码

import pygame
import sys

pygame.init()
screen = pygame.display.set_mode((600, 400))
pygame.display.set_caption("圆角线条测试")

# 自定义线条参数
line_color = (60, 120, 220)
start_pos = (120, 200)
end_pos = (480, 200)
line_thickness = 18

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
    screen.fill((240, 240, 240))
    
    # 绘制基础线
    pygame.draw.line(screen, line_color, start_pos, end_pos, width=line_thickness)
    # 补两端圆角
    pygame.draw.circle(screen, line_color, start_pos, line_thickness//2)
    pygame.draw.circle(screen, line_color, end_pos, line_thickness//2)
    
    pygame.display.update()

拓展说明

  • 该方案对任意角度的直线都适用,不需要额外做坐标换算
  • 如果需要绘制带圆角拐点的折线,只需要在每两个线段的连接点也补画同半径的同色圆形即可
  • 若该线条需要高频重复渲染,可以预先将绘制好的圆角线条保存为Surface对象缓存,后续直接调用blit方法渲染即可,降低重复计算开销

内容的提问来源于stack exchange,提问作者floatingCatsAndDogs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 22:27:03