MATLAB Answers

How t generate cone using scattered random point cloud?

4 views (last 30 days)
M.S. Khan
M.S. Khan on 20 Oct 2020
Commented: M.S. Khan on 21 Oct 2020
Using the below code, i have geneated sphere. could anyone please guide me how to geneate cone using random scattered point cloud.
I will be very thankful. Thanks in advance to all community members for their cooperation and guidance. Regards
r = randn (10000,3);
r = round(bsxfun(@rdivide,r,sqrt(sum(r.^2,2)))*130);
x = r(:,1);
y = r(:,2);
z = r(:,3);
scatter3(x,y,z)

  3 Comments

M.S. Khan
M.S. Khan on 20 Oct 2020
Dear KSSV, thanks for your kind reply. This code provides cone also but not random scattered point cloud. Regards
M.S. Khan
M.S. Khan on 20 Oct 2020
They are using grid that means its uniform spaced points? Could you guide me how to generate cone using scattered random point cloud.

Sign in to comment.

Accepted Answer

Bruno Luong
Bruno Luong on 20 Oct 2020
Edited: Bruno Luong on 20 Oct 2020
This code provides the uniform distribution on the surface of the cone
h = 3; % height
r = 1; % base radius
n = 1e4; % number of points
topcapflag = true; % include the top cap or not
rho = sqrt(rand(1,n));
z = h*rho;
if topcapflag
z(rand(1,n)<r/(h+r))=h;
end
theta = (2*pi)*rand(1,n);
rho = r*rho;
x = cos(theta).*rho;
y = sin(theta).*rho;
% graphic check
figure
plot3(x,y,z,'.')
axis equal

  1 Comment

M.S. Khan
M.S. Khan on 21 Oct 2020
Thanks Dearest Bruno for your professional supprot. Regards!

Sign in to comment.

More Answers (1)

Ameer Hamza
Ameer Hamza on 20 Oct 2020
This is one way. The distribution is non-uniform
h = 2; % height of cone
r = 1; % maximum radius of cross section of the cone
n = 10000;
z = rand(1, n)*h;
t = rand(1, n)*2*pi;
r = interp1([0 h], [0 r], z);
[x, y] = pol2cart(t, r);
scatter3(x, y, z)

  14 Comments

M.S. Khan
M.S. Khan on 21 Oct 2020
Thanks Ameer Hamza for all your kind guidance. i hope i can learn a lot from you in matlab.
M.S. Khan
M.S. Khan on 21 Oct 2020
Regards, i have sent you email by your Mathworks contact.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!