在二维平面布点很容易,只需要知道横、纵坐标。举个例子,在二维平面上均匀布49个点,这些点形成一个正方形。
x = -3:3;
y = -3:3;
[x,y] = meshgrid(x,y);
x = reshape(x,1,[]);
y = reshape(y,1,[]);
scatter(x,y,'filled'), axis equal, box on
那如何在三维空间中的任意一个平面上这样布点?
这时需要已知条件 1. 该平面的法向量 normVec ,2. 布点的起始点 origin
origin = [0;0;0];
normVec = [1,1,1];
Q = null(normVec); % 规范正交基
coordins = origin + Q*[x;y]; % 三维坐标点
% vistualization
figure, hold on
scatter3(coordins(1,:),coordins(2,:),coordins(3,:),'filled')
quiver3(origin(1),origin(2),origin(3),normVec(1),normVec(2),normVec(3),2)
view(3), axis equal, grid on, box on
综上,可以先在二维平面布点,然后再坐标变换,得到想要的三维平面上的点。