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

如何移除裁剪圆形的对角线的圆外部分,保留截断圆弧

实现仅保留截断圆弧的裁剪圆形效果

之前的方法通过transdata用对角线裁剪圆形,但会保留对角线的圆外部分。要仅保留被截断的圆弧及圆内的对角线部分,可按以下步骤调整:

  • 计算对角线与圆形的交点:联立圆方程(圆心(0,0),半径6)和对角线方程x+y=7,解得交点坐标为( (7+√23)/2, (7-√23)/2 )和( (7-√23)/2, (7+√23)/2 ),近似值为(5.898, 1.102)和(1.102, 5.898)。
  • 仅绘制两点之间的对角线线段,替换原有的全对角线绘制。
  • 保持圆形的裁剪逻辑不变。

修改后的完整代码:

import matplotlib.pyplot as plt
import math

# 计算对角线与圆的交点
sqrt23 = math.sqrt(23)
x1 = (7 + sqrt23) / 2
y1 = (7 - sqrt23) / 2
x2 = (7 - sqrt23) / 2
y2 = (7 + sqrt23) / 2

# 创建圆形,半径6
circle = plt.Circle((0, 0), 6, color='r', fill=False)

# 设置画布与坐标轴
plt.figure(figsize=(8, 8))
plt.xlim(0, 10)
plt.ylim(0, 10)
plt.grid()

ax = plt.gca()
ax.add_patch(circle)

# 仅绘制圆内的对角线部分
plt.plot([x1, x2], [y1, y2], color='b', linestyle='--')

# 设置等比例坐标轴
ax.set_aspect("equal")

# 用多边形裁剪圆形
polygon = plt.Polygon([[0, 0], [7, 0], [0, 7]], transform=ax.transData)
circle.set_clip_path(polygon)

# 设置标题并显示
plt.title("仅保留截断圆弧的裁剪圆形效果")
plt.show()

调整后将只显示圆内的对角线线段和被裁剪后的圆弧,移除了对角线在圆外的部分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 11:43:21