# How t generate cone using scattered random point cloud?

조회 수: 6(최근 30일)
M.S. Khan 2020년 10월 20일
댓글: anuradha verma 2022년 11월 11일
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표시숨기기 이전 댓글 수: 2
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 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 2020년 10월 21일
Thanks Dearest Bruno for your professional supprot. Regards!

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

### 추가 답변(1개)

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)
Thank you sir.

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

### 범주

Find more on Get Started with Statistics and Machine Learning Toolbox in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by