如何在SageMath中为绘图中半圆上方两竖线间的指定区域上色

你可以通过SageMath内置的polygon函数构造封闭填充区域来实现需求,核心思路是先列出待填充区域的所有顶点:左竖线上端点 -> 左竖线与半圆交点 -> 沿半圆从左到右的采样点 -> 右竖线与半圆交点 -> 右竖线上端点,最后闭合路径即可。
以下是完整可运行的实现代码:
var('x') # 定义上半圆函数 e = sqrt(1 - x^2) # 构造两条竖线 f = line([(-1/2, sqrt(3)/2), (-1/2, 3)], color='black') g = line([(1/2, sqrt(3)/2), (1/2, 3)], color='black') # 生成半圆介于x=-1/2到x=1/2之间的采样点,步长越小边缘越平滑 semicircle_points = [(x_val, sqrt(1 - x_val^2)) for x_val in srange(-1/2, 1/2 + 0.01, 0.01)] # 拼接填充区域的所有顶点 fill_points = [(-1/2, 3)] + semicircle_points + [(1/2, 3)] # 生成填充图层,alpha控制透明度,color控制填充色 fill_area = polygon(fill_points, color='lightblue', alpha=0.5, edgecolor='none') # 合并所有图层展示 show(plot(e, color='black') + fill_area + f + g, aspect_ratio=1)
你可以根据需求调整填充色、透明度、填充区域的最大高度等参数,修改对应变量的取值即可。
内容的提问来源于stack exchange,提问作者Dedekid
相关产品推荐
相关产品推荐

