注意到 Matlab自带了一个用于画球体的函数,其他球体都可以通过这个函数生成的数据变换而来。
这个函数就是sphere。
sphere用于生成一个球心在原点的单位球。通过坐标球心变换即可获得任意球心位置任意半径大小的球。
function h = drawSphere(r, centerx, centery, centerz, N)
if nargin == 5
[x,y,z] = sphere(N);
else
[x,y,z] = sphere(50);
end
h = surf(r*x+centerx, r*y+centery, r*z+centerz);
h.EdgeColor = rand(1,3);
h.FaceColor = h.EdgeColor;
r – 半径
centerx centery centerz – 球心坐标
N – 网格密度,不写此参数的话默认为50
drawSphere绘制一个球心在[centerx, centery, centerz]处,半径为r的球。且给定任意颜色。
=========================================
Example1:
clear;clc;clf;
h1 = drawSphere(5, 4, 3, 6);
hold on;
h2 = drawSphere(3, -1, -1, -1);
axis equal
也可以通过后续的颜色指定改变球体的颜色
Example2:
clear;clc;
h1 = drawSphere(5, 4, 3, 6);
hold on;
h1.EdgeColor = [1, 0, 0]
h1.FaceColor = [1,0,0]
h2 = drawSphere(3, -1, -1, -1);
h2.EdgeColor = [0,1,0];
h2.FaceColor = [0,1,0];
axis equal