How t generate cone using scattered random point cloud?

조회 수: 6(최근 30일)
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
M.S. Khan
M.S. Khan 2020년 10월 20일
They are using grid that means its uniform spaced points? Could you guide me how to generate cone using scattered random point cloud.

댓글을 달려면 로그인하십시오.

채택된 답변

Bruno Luong
Bruno Luong 2020년 10월 20일
편집: Bruno Luong 2020년 10월 20일
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
M.S. Khan
M.S. Khan 2020년 10월 21일
Thanks Dearest Bruno for your professional supprot. Regards!

댓글을 달려면 로그인하십시오.

추가 답변(1개)

Ameer Hamza
Ameer Hamza 2020년 10월 20일
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)
  댓글 수: 23
anuradha verma
anuradha verma 2022년 11월 11일
Thank you sir.

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

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

Start Hunting!

Translated by