The code below is great which generates a cone of infinite points. Could anyone help me how to fix the number of points. For example, if i want only 10, 000 points or 20,000 point on the cone. How can i fix on the cone using matlab code below. r1=input('enter radius'); r=r1:-0.5:0; h=input('enter ht'); % -------------------- xvec = floor(-r1):ceil(r1); yvec = xvec; hvec = 0:ceil(h); [X, Y, H] = ndgrid(xvec, yvec, 0:floor(h)); r_at_H = r1 * (1 - H/h); is_in_cone = abs(X) <= r1 & abs(Y) <= r1 & H <= h & sqrt(X.^2+Y.^2) <= r_at_H; Xc = X(is_in_cone); Yc = Y(is_in_cone); Hc = H(is_in_cone); pointsize = 20; figure(2) scatter3(Xc, Yc, Hc, pointsize, 'filled')
Neeta Dsouza answered .
2025-11-20
Vcone = pi*R^2*h/3
% Cone parameters R = 10; h = 10; N = 10000; dx = (pi*R^2*h/3/N)^(1/3); rvec = linspace(-R,R,ceil(2*R/dx)); hvec = linspace(0,h,ceil(h/dx)); [X,Y,Z] = ndgrid(rvec,rvec,hvec); is_in_cone = (X.^2+Y.^2) <= (R/h*(h-Z)).^2; % Edit bug fix Xc = X(is_in_cone); Yc = Y(is_in_cone); Zc = Z(is_in_cone); figure(3) pointsize = 3, scatter3(Xc, Yc, Zc, pointsize, 'filled') axis equal numel(Xc) % should be close to N