前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【MATLAB】三维图形绘制 ( 绘制球面 | sphere 函数 | 设置光源 | light 函数 | 相机视线 | view 函数 )

【MATLAB】三维图形绘制 ( 绘制球面 | sphere 函数 | 设置光源 | light 函数 | 相机视线 | view 函数 )

作者头像
韩曙亮
发布2023-03-29 10:18:48
2K0
发布2023-03-29 10:18:48
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

一、绘制球面


1、sphere 函数

sphere 函数参考文档 : https://ww2.mathworks.cn/help/matlab/ref/sphere.html

sphere 函数用于创建球面 ,

代码语言:javascript
复制
[X, Y, Z] = sphere(n)

上述代码的作用是创建一个半径为

1

, 包含

n \times n

个球面的

x, y, z

坐标 ;

返回的

X , Y , Z

都是

( n + 1 ) \times ( n + 1 )

矩阵 ;

2、代码示例

代码示例 :

代码语言:javascript
复制
% 生成 50 x 50 个面的球面
sphere(50);

执行结果 :

在这里插入图片描述
在这里插入图片描述

二、设置光源


1、light 函数

light 函数参考文档 : https://ww2.mathworks.cn/help/matlab/ref/light.html

基本语法 : 在某个指定的三维坐标点添加光源 ;

代码语言:javascript
复制
% 在 (3, -1, 3) 位置添加光源
light('Position', [3 -1 3]);

在不同的位置添加光源 , 产生的效果是不同的 , 下图中 , 左侧的球面是在 (-3, -1, 3) 位置添加光源 , 右侧的球面是在 (3, -1, 3) 位置添加光源 ;

在这里插入图片描述
在这里插入图片描述

2、代码示例

代码示例 :

代码语言:javascript
复制
% 生成 50 x 50 个面的球面
sphere(50);

% 在 (-3, -1, 3) 位置添加光源
light('Position', [-3 -1 3]);

执行结果 :

在这里插入图片描述
在这里插入图片描述

2、代码示例 2

代码示例 :

代码语言:javascript
复制
% 生成 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 ;

代码语言:javascript
复制
view(az,el)

绘制了一个对象之后 , 可以设置观察该对象的摄像机位置 , 摄像机的前后左右位置可以进行调整 , 这里可以设置两个角度

  • Azimuth 方位角 , 摄像头绕绘制物体旋转角度 ;
  • Elevation 仰角 , 摄像头上下倾斜的角度 ;
在这里插入图片描述
在这里插入图片描述

下图中

  • 左侧图的方位角是 -45 度 , 仰角是 20 度 ;
  • 右侧图的方位角是 -45 度 , 仰角是 60 度 ;
在这里插入图片描述
在这里插入图片描述

2、代码示例

代码示例 :

代码语言:javascript
复制
% 生成 50 x 50 个面的球面
sphere(50);

% 在 (-3, -1, 3) 位置添加光源
light('Position', [-3 -1 3]);

% 摄像机角度 , 不同的角度摄像头位置不同
view(-45, 20);

执行效果 :

在这里插入图片描述
在这里插入图片描述

3、代码示例 2

代码示例 :

代码语言:javascript
复制
% 生成 50 x 50 个面的球面
sphere(50);

% 在 (-3, -1, 3) 位置添加光源
light('Position', [-3 -1 3]);

% 摄像机角度 , 不同的角度摄像头位置不同
view(-45, 60);

执行效果 :

在这里插入图片描述
在这里插入图片描述

四、综合代码示例


代码示例 :

代码语言:javascript
复制
% 生成 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;

执行结果 :

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-04-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、绘制球面
    • 1、sphere 函数
      • 2、代码示例
      • 二、设置光源
        • 1、light 函数
          • 2、代码示例
            • 2、代码示例 2
            • 三、相机视线
              • 1、view 函数
                • 2、代码示例
                  • 3、代码示例 2
                  • 四、综合代码示例
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档