clc,clear;
%初始化球体位置和大小
R = 2;
x=1;
y=1;
z=1;
% 创建初始化的patch对象
vertices = [];
faces = [];
%用sphere函数,定义球面网格坐标,并重新计算XYZ位置
[X, Y, Z] = sphere(50);%这里控制网格精度,最好大一点否则生成stl几何可能有缺点不够圆滑
X = R* X + x;
Y = R* Y + y;
Z = R* Z + z;
surf(X,Y,Z)
fv = surf2patch(X, Y, Z, 'triangles');%这里使用surf2patch将表面数据写成四边形网格
faces = [faces; fv.faces + size(vertices, 1)];
vertices = [vertices; fv.vertices];
% 创建三角剖分对象,TR = triangulation(T,P) 使用三角剖分连接列表 T 和矩阵 P 中的点创建二维或三维三角剖分表示。
TR = triangulation(faces, vertices);
% 导出为STL文件
stlFileName = 'qiuti.stl';
stlwrite(TR, stlFileName);%使用stlwrite将三角剖分写入STl文件。
disp(['文件已保存为', stlFileName]);