vmc = @(x, y) sqrt(x.^2 - x.y + y.^2)-yieldstress.(1+a1*(-sqrt(3)/3)); % trc = @(x, y) 0.5 * max(cat(3, abs(x - y), abs(x), abs(y))-1, [], 3); xx = linspace(-limitxy, limitxy, 1000); yy = linspace(-limitxy, limitxy, 1000); [X, Y] = ndgrid(xx, yy); [C5,h5] = contour(X, Y, vmc(X, Y), [1 1]);给曲线添加圆点标记,并控制标记点数量
时间: 2023-09-06 21:14:36 浏览: 63
要给曲线添加圆点标记,可以使用MATLAB函数"plot"。以下是添加标记并控制标记点数量的代码示例:
[C5,h5] = contour(X, Y, vmc(X, Y), [1 1]);
idx = find(C5(1,:) == 1); % 找到标记点的位置
xpts = C5(1,idx+1); % 获取标记点的x坐标
ypts = C5(2,idx+1); % 获取标记点的y坐标
plot(xpts, ypts, 'o'); % 添加圆点标记
set(gca, 'DataAspectRatio', [1 1 1]); % 设置坐标轴比例为1:1
xlim([-limitxy limitxy]); ylim([-limitxy limitxy]); % 设置坐标轴范围
xticks(-limitxy:limitxy/2:limitxy); yticks(-limitxy:limitxy/2:limitxy); % 设置坐标轴刻度
axis square; % 设置坐标轴为正方形
box on; % 显示坐标轴边框
grid on; % 显示坐标轴网格
set(gca, 'GridLineStyle', '-', 'XColor', 'k', 'YColor', 'k', 'LineWidth', 0.5); % 设置网格线样式和颜色
相关问题
vmc = @(x, y) sqrt(x.^2 - x.*y + y.^2); vmc1 = @(x, y) x.^2 - x.*y + y.^2; trc = @(x, y) 0.5 * max(cat(3, abs(x - y), abs(x), abs(y)), [], 3); xx = linspace(-2, 2, 101); yy = linspace(-2, 2, 101); [X, Y] = ndgrid(xx, yy); [C,h] = contour(X, Y, vmc(X, Y), [1 1]);给contour绘制的曲线增加点状标识
您可以使用 `scatter` 函数在 `contour` 绘图上增加点状标识。具体来说,您需要先将 `contour` 绘图的 `handle` 作为 `scatter` 函数的第一个输入参数,然后设置点的位置和其他参数。以下是一个简单的示例:
```matlab
% 定义函数和绘图区域
vmc = @(x, y) sqrt(x.^2 - x.*y + y.^2);
xx = linspace(-2, 2, 101);
yy = linspace(-2, 2, 101);
[X, Y] = ndgrid(xx, yy);
% 绘制等高线图和点状标识
[C, h] = contour(X, Y, vmc(X, Y), [1 1]);
hold on;
scatterHandle = scatter(C(1,:), C(2,:), 'r');
```
在上面的代码中,我们首先定义了一个函数 `vmc` 和绘图区域。然后,我们使用 `contour` 函数绘制了函数的等高线图,并且只显示等高线值为 1 的曲线。接着,我们使用 `scatter` 函数在等高线图上增加点状标识,其中 `C(1,:)` 和 `C(2,:)` 是等高线曲线上的点的位置,`'r'` 是点的颜色。最后,我们使用 `hold on` 命令将等高线图和点状标识保持在同一张图中。
需要注意的是,`contour` 函数返回的等高线数据是一个 2xN 的矩阵,其中第一行是等高线曲线上点的 x 坐标,第二行是等高线曲线上点的 y 坐标。因此,我们可以直接将等高线数据作为 `scatter` 函数的第一个参数。
yieldstress = 333.8624; a1 = -0.1039; limitxy = 500; vmc = @(x, y) sqrt(x.^2 - x.y + y.^2) - yieldstress.(1+a1*(-sqrt(3)/3)); xx = linspace(-limitxy, limitxy, 1000); yy = linspace(-limitxy, limitxy, 1000); [X, Y] = ndgrid(xx, yy); [C, h] = contour(X, Y, vmc(X, Y), [1 1]); h.LineWidth = 1; h.EdgeColor = "b"; h.FaceColor = "r";,给绘制的曲线添加标注
可以使用 `text` 函数添加标注,代码如下:
yieldstress = 333.8624;
a1 = -0.1039;
limitxy = 500;
vmc = @(x, y) sqrt(x.^2 - x.*y + y.^2) - yieldstress.*(1+a1*(-sqrt(3)/3));
xx = linspace(-limitxy, limitxy, 1000);
yy = linspace(-limitxy, limitxy, 1000);
[X, Y] = ndgrid(xx, yy);
[C, h] = contour(X, Y, vmc(X, Y), [1 1]);
h.LineWidth = 1;
h.EdgeColor = "b";
h.FaceColor = "r";
% 添加标注
text(0, 0, "VMC = 1", "HorizontalAlignment", "center", "VerticalAlignment", "middle", "FontSize", 12);
阅读全文