/ / Генериране на равноотстоящи точки на сфера [MATLAB] - MATLAB

Генериране на еднакви точки на сфера [MATLAB] - MATLAB

Искам да генерирам еквидистантни точки върху сфера (повърхност на сферата). Аз измислих този код.

n = 30; % number of points
r = 10; % radius of the sphere

thetha = 0:pi/(n/2):2*pi;
phi    = -pi:2*pi/n:pi;
xp     = r.*sin(phi).*cos(thetha);
yp     = r.*sin(thetha).*sin(phi);
zp     = r.*cos(phi);
figure;plot3(xp,yp,zp,"*")

Но това е, което получавам въведете описанието на изображението тук

Може ли някой да каже къде каква грешка правя в моя код?

Отговори:

3 за отговор № 1

Вие генерирате само един път: комбинация от фигура 8 от един затворен кръг в х-ш равнина с единична косинус по протежение на Z.

Три изгледа на единичната, затворена крива

За да се получи пълна форма на сферата, трябва да се вземат пермутациите на двата пътя. Това може да се постигне с meshgrid:

[t,p] = meshgrid(thetha,phi);
xp    = r.*sin(p).*cos(t);
yp    = r.*sin(t).*sin(p);
zp    = r.*cos(p);
plot3(xp,yp,zp,"-*");
grid("on");
box("on");
axis("square");

Сферична форма на парцела