1、平移变换

    三维图形的平移变换可以描述为:

%% 圆的平移,x加1,y加1,z+1
clc;clear all;
figure(1);
axis equal;
sphere(50);%球由50*50个面组成
[x y z]=sphere();
hold on;
dx = 1;dy = 1;dz = 1;
%坐标加一
T = [1 0 0 0;0 1 0 0;0 0 1 0;dx dy dz 1];
Ex = x.*T(1,1)+y.*T(2,1)+z.*T(3,1)+1.*T(4,1);
Ey = x.*T(1,2)+y.*T(2,2)+z.*T(3,2)+1.*T(4,2);
Ez = x.*T(1,3)+y.*T(2,3)+z.*T(3,3)+1.*T(4,3);
% surf(E(:,1:21),E(:,22:42),E(:,43:63));
%surf(x+dx,y+dy,z+dz);
surf(Ex,Ey,Ez);

2.旋转变换

三维图形的旋转变换可描述为:

%% 绘制一个柱体,然后绕x轴旋转60°clear all;clc;
[x,y,z]=cylinder(3);  %调用cylinder函数‘()’内半径为3. 运行此命令后系统自动为x,y,z填充了数据
z(2,:)=2;      %设置矩阵Z的第二行数值全为2,即设置圆柱体高度
figure;
surf(x,y,z,'FaceColor',[1,0,0]);       %使用surf功能将x,y,z的数据导入。FaceColor即设置圆柱体颜色,红色色号为[1,0,0]
daspect([1 1 1])                  %设置x,y,z坐标间距等长。
view(30,30)                     %设置图像显示角度
hold on
theta = linspace(0,2*pi,40)       %将一个圆周分为40份
X=3*cos(theta);                    %将cos值赋予x
Y=3*sin(theta);                     %将sin赋予Y
Z=ones(size(X))+1;                 %设置Z与X长度想等
fill3(X,Y,Z,[1,0,0]);                  %使用Fill3功能函数,填充XYZ所围成的区域,这个是顶盖
fill3(X,Y,Z-2,[1,0,0]);              %底盖
hold on
T = [1 0 0 0;0 cosd(60) sind(60) 0;0 -sind(60) cosd(60) 0;0 0 0 1];
Ex = x.*T(1,1)+y.*T(2,1)+z.*T(3,1)+1.*T(4,1);%这三句是旋转的柱面的侧面
Ey = x.*T(1,2)+y.*T(2,2)+z.*T(3,2)+1.*T(4,2);
Ez = x.*T(1,3)+y.*T(2,3)+z.*T(3,3)+1.*T(4,3);
%下面是旋转圆面,只旋转的上面的圆面,下面的没有旋转
Ex1 =X.*T(1,1)+Y.*T(2,1)+Z.*T(3,1)+1.*T(4,1);
Ey1 = X.*T(1,2)+Y.*T(2,2)+Z.*T(3,2)+1.*T(4,2);
Ez1 = X.*T(1,3)+Y.*T(2,3)+Z.*T(3,3)+1.*T(4,3);
surf(Ex,Ey,Ez);
fill3(Ex1,Ey1,Ez1,[1,0,0]);

3.错切变换

错切变换的常用变换矩阵为:

%% 3.用sphere生成多面体,然后对其进行错切变换,不断的改变错切系数和多面体的数量
clear all;clc;
T=[1 0 0;1 1 0;0   0 1];
for num = 1:10  %多边形的数量for ti = 1:0.05:1.1  %错切系数T(2,1) = T(2,1)*ti; %改变错切系数[x,y,z] = sphere(num);fprintf("错切系数:%f\n",T(2,1));surf(x,y,z);fprintf("显示第%d边形\n",num);pause(0.5);for i=1:num+1for j=1:num+1a=x(i,j);b=y(i,j);c=z(i,j);m=[a b c]*T';x1(i,j)=m(1);y1(i,j)=m(2);z1(i,j)=m(3);endendfprintf("错切第%d边形\n",num);surf(x1,y1,z1)pause(0.5);endT(2,1) = 1;
end

三维图形的平移,旋转与错切相关推荐

  1. 图像几何变换C++实现--镜像,平移,旋转,错切,缩放

    一.图像几何变换介绍 图像的几何空间变换是图像处理中的最基础的算法,是指对原始图像按需要改变其大小.形状和位置的变化,原始图像与目标函数之间的坐标变换函数为线性函数.二维图像的基本几何变换主要包括镜像 ...

  2. matlab 使得三维图形可以手动旋转,三维图形的平移,旋转与错切

    1.平移变换 三维图形的平移变换可以描述为: %% 圆的平移,x加1,y加1,z+1 clc;clear all; figure(1); axis equal; sphere(50);%球由50*50 ...

  3. Android 绘图基础:Bitmap(位图)与Matrix(矩阵)实现图片5种操作(平移、旋转、错切、缩放、对称)

    Android的Matrix利用数学原理实现图片平移.旋转等操作详解 很庆幸自己的线性代数学的还可以,理解Matrix的矩阵变换完全没有问题.Matrix矩阵实现图片的平移旋转等操作涉及到线性代数问题 ...

  4. 三维空间几何变换原理[平移、旋转、错切]

  5. 三维坐标 偏转_三维坐标变换原理-平移, 旋转, 缩放

    给定一个二维点(x, y),那么形如(kx, ky, k)的所有三元组就都是等价的,它们就是这个点的齐次坐标(homogeneous).齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示,是指 ...

  6. 数据增广:旋转,缩放,平移以及错切

    在深度学习(图像领域)中,为了提升训练样本数量数据增广是非常常见的手段.比如: 随机水平翻转 随机色调(H).饱和度(S).明度(V)调整 随机旋转,缩放,平移以及错切 还有近几年常用的mixup,m ...

  7. 图形学(8)二维三维图形变换

    本模块内容绝大部分是在慕课上看中国农业大学网客时的笔记,因此算作转载,在此鸣谢赵明.李振波两位老师,感谢他们录制该门课程供大家学习! 在使用计算机处理图像时,我们不可避免对图形的位置.大小.形状等进行 ...

  8. 计算机图形学13:三维图形的几何变换

    作者:非妃是公主 专栏:<计算机图形学> 博客地址:https://blog.csdn.net/myf_666 个性签:顺境不惰,逆境不馁,以心制境,万事可成.--曾国藩 文章目录 专栏推 ...

  9. 【计算机图形学】小白谈计算机图形学(四)二维三维图形变换—1

    小白谈计算机图形学(四)二维三维图形变换-1 窗口与视图 二维图形的几何变换 平移变换 比例变换 旋转变换 二维图形变换的矩阵表示 三种变换 齐次坐标变换 原二维线性变换 齐次坐标法 复合变换 例题: ...

最新文章

  1. iOS进阶之架构设计MVVM模式实践(11)
  2. 深度学习核心技术精讲100篇(七)-keras 实战系列之深度学习模型处理多标签(multi_label)
  3. Android Studio相关资料链接
  4. java(系统)实战1
  5. redis系列:通过队列案例学习list命令
  6. Cassandra集群配置
  7. (24)HTTP 方法:GET 对比 POST
  8. Linux 170个常见问题的详细解答
  9. php url传递 加号,坑爹的URL编码-PHP正确处理URL中的加号(+)
  10. 设置mysql的schema_MySQL Performance-Schema(一) 配置篇
  11. 3D家居设计展示系统
  12. hadoop之hdfs
  13. 阅读 |《算法图解》读书打卡
  14. xml中使用 报错:XML Parser Error on line 35: 在实体引用中, 实体名称必须紧跟在 ‘‘ 后面。
  15. 对于大数据的一些处理方法
  16. RGB 透明度对应值
  17. 介绍一下当前使用的Oracle数据库自动化运维方式
  18. TiDB 在 2021 易车 818 汽车狂欢节的应用
  19. 【智能制造】转型企业智能工厂的思考与建设重点
  20. 不容错过,数据分析中最常用的10大Python库

热门文章

  1. 测试管理知识:如何从业务高手转型为基层管理者
  2. 30岁转行做程序员是一种怎样的体验?
  3. 华为OD-Java面经
  4. PyCryptodome
  5. 再看 Kafka Lag
  6. MyCat(三)分库分表
  7. 前端PS切片 常用不同格式图片区别
  8. singleTask 与 taskAffinity 缠绵的那些事
  9. LOL英雄联盟自动打人机训练升级【CircuitPython】
  10. gojs不显示图表选中边框