一、绘制球面
1、sphere 函数
sphere 函数参考文档 : https://ww2.mathworks.cn/help/matlab/ref/sphere.html
sphere 函数用于创建球面 ,
[X, Y, Z] = sphere(n)
上述代码的作用是创建一个半径为 1 1 1 , 包含 n × n n \times n n×n 个球面的 x , y , z x, y, z x,y,z 坐标 ;
返回的 X , Y , Z X , Y , Z X,Y,Z 都是 ( n + 1 ) × ( n + 1 ) ( n + 1 ) \times ( n + 1 ) (n+1)×(n+1) 矩阵 ;
2、代码示例
代码示例 :
% 生成 50 x 50 个面的球面
sphere(50);
执行结果 :
二、设置光源
1、light 函数
light 函数参考文档 : https://ww2.mathworks.cn/help/matlab/ref/light.html
基本语法 : 在某个指定的三维坐标点添加光源 ;
% 在 (3, -1, 3) 位置添加光源
light('Position', [3 -1 3]);
在不同的位置添加光源 , 产生的效果是不同的 , 下图中 , 左侧的球面是在 (-3, -1, 3) 位置添加光源 , 右侧的球面是在 (3, -1, 3) 位置添加光源 ;
2、代码示例
代码示例 :
% 生成 50 x 50 个面的球面
sphere(50);
% 在 (-3, -1, 3) 位置添加光源
light('Position', [-3 -1 3]);
执行结果 :
2、代码示例 2
代码示例 :
% 生成 50 x 50 个面的球面
sphere(50);
% 在 (3, -1, 3) 位置添加光源
light('Position', [3 -1 3]);
执行结果 :
三、相机视线
1、view 函数
view 函数参考文档 : https://ww2.mathworks.cn/help/matlab/ref/view.html
view 函数语法 : 设置相机的方位角 az 和 仰角 el ;
view(az,el)
绘制了一个对象之后 , 可以设置观察该对象的摄像机位置 , 摄像机的前后左右位置可以进行调整 , 这里可以设置两个角度
- Azimuth 方位角 , 摄像头绕绘制物体旋转角度 ;
- Elevation 仰角 , 摄像头上下倾斜的角度 ;
下图中
- 左侧图的方位角是 -45 度 , 仰角是 20 度 ;
- 右侧图的方位角是 -45 度 , 仰角是 60 度 ;
2、代码示例
代码示例 :
% 生成 50 x 50 个面的球面
sphere(50);
% 在 (-3, -1, 3) 位置添加光源
light('Position', [-3 -1 3]);
% 摄像机角度 , 不同的角度摄像头位置不同
view(-45, 20);
执行效果 :
3、代码示例 2
代码示例 :
% 生成 50 x 50 个面的球面
sphere(50);
% 在 (-3, -1, 3) 位置添加光源
light('Position', [-3 -1 3]);
% 摄像机角度 , 不同的角度摄像头位置不同
view(-45, 60);
执行效果 :
四、综合代码示例
代码示例 :
% 生成 50 x 50 个面的球面
sphere(50);
% 着色方式
shading flat;
% 在 (-3, -1, 3) 位置添加光源
light('Position', [-3 -1 3]);
material shiny;
% 设置图像颜色值 , 白色 , 默认灰色
set(gcf, 'Color', [1 1 1]);
% 摄像机角度 , 不同的角度摄像头位置不同
view(-45, 20);
% 坐标轴样式 square
axis square;
执行结果 :
转载:https://blog.csdn.net/han1202012/article/details/115999546