在多边形中,当X定义为0.5时如何找到所有的Y点,当Y定义为0.75时如何找到所有的X点?(搜索到的数字可以改变)
代码:
clc;
clear all;
close all;
P = [0.5 0.5; 1 0.75; 0.5 0.75; 0.8 0.8; 0.25 1; 0 1];
pgon = polyshape(P)
plot(pgon)
逻辑索引给定列
获得匹配对的一种方法是在给定的列上使用逻辑索引,并使用逻辑索引来索引互补列。在已知X
的情况下,我们可以用它来计算第一列中哪些指标等于某个值,然后用这些指标来获得第二列中相应的Y
值。当Y
已知/给定时,反之亦然。
clc;
P = [0.5 0.5; 1 0.75; 0.5 0.75; 0.8 0.8; 0.25 1; 0 1];
pgon = polyshape(P);
plot(pgon);
%Inputting X-coordinate%
X = 0.5;
Y_Points = P(P(:,1) == X,2);
X_Points = repmat(X,[length(Y_Points) 1]);
disp("X: " + num2str(X));
arrayfun(@(x,y) fprintf("(x,y) -> (%.2f,%.2f)n",x,y), X_Points,Y_Points);
fprintf("n")
%Inputting Y-coordinate%
Y = 0.75;
X_Points = P(P(:,2) == Y,1);
Y_Points = repmat(Y,[length(X_Points) 1]);
disp("Y: " + num2str(Y));
arrayfun(@(x,y) fprintf("(x,y) -> (%.2f,%.2f)n",x,y), X_Points,Y_Points);
输出结果:
X: 0.5
(X,y) ->(0.50,0.50)
(x,y) ->(0.50, 0.75)
(x, Y) ->(1.00,0.75)
(x,y) ->(0.50, 0.75)