How to create randomly placed points within a 3D rectangle?
12 次查看(过去 30 天)
显示 更早的评论
I want to create random points (solid spheres which i can change the radius) inside a 3D rectangular box, which i can change the dimensions of the box later. I found this code for a randomly place points inside a function and i could like to know if anyone knows how to change it to a rectangle.
% pick plenty of random points
x = -1 + (1+1)*rand(1,500); %x-coordinate of a point
y = -0.6 + (0.6+0.6)*rand(1,500); %y-coordinate of a point
z = -0.8 + (1.2+0.8)*rand(1,500); %z-coordinate of a point
%function defining a heart
F1=(((x.^2) + (9/4).*(y.^2) + z.^2-1).^3+(-x.^2 .* z.^3 -(9/80).*y.^2.*z.^3));
ind = F1<0; % index for points inside the isosurface
x = x(ind); x = x(1:100); % pick 100 of those points
y = y(ind); y = y(1:100);
z = z(ind); z = z(1:100);
scatter3(x, y, z, 'MarkerFaceColor','b','MarkerEdgeColor','b');
hold off
0 个评论
采纳的回答
Alan Stevens
2020-8-28
Do you mean something like this:
% length, width and height of box
L = 3; W = 2; H = 1;
% pick plenty of random points
x = L*rand(1,100); %x-coordinate of a point
y = W*rand(1,100); %y-coordinate of a point
z = H*rand(1,100); %z-coordinate of a point
scatter3(x, y, z, 'MarkerFaceColor','b','MarkerEdgeColor','b');
box
3 个评论
Alan Stevens
2020-8-28
Yes, try:
% length, width and height of box
L = 3; W = 2; H = 1;
% pick plenty of random points
x = L*rand(1,100); %x-coordinate of a point
y = W*rand(1,100); %y-coordinate of a point
z = H*rand(1,100); %z-coordinate of a point
blob = 10;
plot3(x, y, z,'o', 'MarkerFaceColor','b','MarkerEdgeColor','b','MarkerSize',blob);
box
This sets the size of all the points to be the same.
If you want some to be set at different values you would need to plot them with seperate plot commands.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Polygons 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!