如何在MATLAB中为自定义绘制的椭圆区域填充颜色?
如何为旋转椭圆填充内部颜色?
你遇到的问题是area函数不适合填充闭合椭圆——它默认填充曲线与坐标轴之间的区域,而非闭合图形内部。正确的做法是使用fill函数,它专门用于填充闭合曲线的内部区域。
修改后的代码示例
angles = atan2(y2 - y1, x2 - x1); t = linspace(0, 2 * pi, 300); % Absolute angle parameter X = a_ellipse * cos(t); Y = b_ellipse * sin(t); x_ellipse = (x1 + x2) / 2 + X * cos(angles) - Y * sin(angles); y_ellipse = (y1 + y2) / 2 + X * sin(angles) + Y * cos(angles); % 填充椭圆内部,同时设置边框样式 fill(x_ellipse, y_ellipse, 'lightblue', 'EdgeColor', 'r', 'LineWidth', 2); axis equal
关键说明
fill(x, y, color)会自动识别闭合曲线的轮廓,填充其内部区域,完全匹配你的需求。- 通过
EdgeColor和LineWidth参数,可以直接设置椭圆的边框颜色和宽度,替代原有的plot语句,一步完成填充和边框绘制。 - 如果需要分开绘制边框和填充,也可以先执行原有的
plot语句,再添加fill(x_ellipse, y_ellipse, 'lightblue', 'FaceAlpha', 0.5)(FaceAlpha可设置填充透明度)。
内容的提问来源于stack exchange,提问作者Maite Martinez
相关产品推荐
相关产品推荐

