查看: 190|回复: 2|关注: 0

[已解决] 用sphere画球体之后,有办法列出球面的点的坐标吗?

[复制链接]

新手

27 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
请教大家,我用sphere画了一个球体,现在需要取球面上的至少50个点的坐标,有办法直接取吗?

我自己(真小白)的想法是,球体画完后workspace有 X, Y, Z 的table,然后用 x=tableX的(*行*列),y=tableY的(*行*列),z=tableZ的(*行*列)。
最后用 N=(x,y,z)。
但这仅仅是想法,不知道该怎么码,也想请教下,怎么从3个table随机取50组同行同列的 x,y,z 的数值,然后让同组的3个数值作为一个 N(x,y,z)?


新手求教,先谢谢大家。


  1. % Make unit sphere
  2. [X,Y,Z] = sphere;
  3. % Scale to desire radius.
  4. radius = 30;
  5. X = X * radius;
  6. Y = Y * radius;
  7. Z = Z * radius;
  8. % Translate sphere to new location.
  9. offset = 0;
  10. % Plot as surface.
  11. surf(X+offset,Y+offset,Z+offset)
  12. % Label axes.
  13. xlabel('X', 'FontSize', 10);
  14. ylabel('Y', 'FontSize', 10);
  15. zlabel('Z', 'FontSize', 10);
  16. axis equal;
复制代码



2.PNG

1.PNG





回复主题 已获打赏: 0 积分

举报

论坛优秀回答者

3

主题

1257

帖子

271

最佳答案
  • 关注者: 57
发表于 2020-5-20 23:51:06 | 显示全部楼层 |此回复为最佳答案
本帖最后由 20141303 于 2020-5-21 00:05 编辑

仅供参考
  1. <font style="background-color: rgb(255, 255, 255);">% Make unit sphere
  2. [X,Y,Z] = sphere;
  3. % Scale to desire radius.
  4. radius = 30;
  5. X = X * radius;
  6. Y = Y * radius;
  7. Z = Z * radius;
  8. % Translate sphere to new location.
  9. offset = 0;
  10. % Plot as surface.
  11. surf(X+offset,Y+offset,Z+offset)
  12. % Label axes.
  13. xlabel('X', 'FontSize', 10);
  14. ylabel('Y', 'FontSize', 10);
  15. zlabel('Z', 'FontSize', 10);
  16. axis equal;
  17. a=randperm(441,50);
  18. hold on
  19. for i=1:length(a)
  20.     dot(i,:)=[X(a(i)),Y(a(i)),Z(a(i))];
  21. end
  22. plot3(dot(:,1),dot(:,2),dot(:,3),'*')</font>
复制代码
捕获.PNG
回复此楼 已获打赏: 0 积分

举报

新手

27 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
 楼主| 发表于 2020-5-21 14:11:25 | 显示全部楼层

非常感谢,这方法可行
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表