该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

function hypercube( N, a, b, c)

%N为立方体维数,N不小于3

% a为投影方式,b为是否画面,c为是否旋转

%取值 1 点投影 画平面 旋转

%取值 0 平行投影 不画平面 不旋转

%-----------------------------------------------

a=logical(a);

b=logical(b);

c=logical(c);

B=orth(rand(N,N));%每一列是N维正交规范基,共N个

%B=eye(N);%也可以使用单位矩阵

P=zeros(N,2^N);%2^N个N维顶点,每一列用于储存一点的坐标

for j=1:2^N

%第j列,对应j-1的二进制数

for i=1:N

P(i,j)=bitget(j-1,i);%每一列储存不同的二进制数(0-1组合)

end

end

RMP=RM(P);%可达矩阵,true表示距离为1

P=B*P;%每一列为一点的坐标

CT=mean(P,2);%中心点坐标,列向量

P=P-CT*ones(1,2^N);%平移,中心与原点重合

%-------------------------------------------------

if c %有运动

de=2;%旋转角度

C=eye(N);%过渡矩阵C

C1=[cosd(de),sind(de); -sind(de),cosd(de)];%旋转矩阵

C([N-1,N],[N-1,N])=C1;

K=1000;

else %没有运动

K=1;

end

for k=1:K

if a %点投影

PTY=P;%储存投影后坐标

for j=1:2^N

PTY(:,j)=2*PTY(:,j)./(2-PTY(N,j));

end

PXYZ=PTY(1:3,:);

else %平行投影

PXYZ=P(1:3,:);

end

plot3(PXYZ(1,:),PXYZ(2,:),PXYZ(3,:),'r*');

axis([-1.5,1.5,-1.5,1.5,-1.5,1.5]);

hold on

if b %选四点,根据距离画平面

for i4=4:2^N

for i3=3:i4-1

for i2=2:i3-1

for i1=1:i2-1

M4=RMP([i1,i2,i3,i4],[i1,i2,i3,i4]);%4点的可达矩阵

if all(sum(M4)==3)

mysurf(PXYZ(:,[i1,i2,i3,i4]));

end

end

end

end

end

else %选两点,根据距离画线

for i=1:2^N

for j=1:i-1

if RMP(i,j)

plot3( PXYZ(1,[i,j]), PXYZ(2,[i,j]), PXYZ(3,[i,j]),'b-');

end

end

end

end

title([num2str(N),'维立方体']);

xlabel('X轴');

ylabel('Y轴');

zlabel('Z轴');

grid on

hold off

pause(0.01);

if c

P=C*P;%坐标旋转变换

end

end

end

function RMA= RM(A)

%构造n*n可达矩阵

%每一列为点的坐标

n=size(A,2);%点数

RMA=zeros(n,n);

for i=2:n

for j=1:i-1

RMA(i,j)=sum(abs(A(:,i)-A(:,j)));

end

end

RMA=RMA+RMA';

RMA=RMA<1.1;

end

function output = mysurf( A )

%输入四个点画平面

%A是3*4矩阵,三行分别代表X Y Z ,每一列为一点坐标

A=A';

X=[A([1,2],1),A([3,4],1)];

Y=[A([1,2],2),A([3,4],2)];

Z=[A([1,2],3),A([3,4],3)];

output=surf(X,Y,Z);

alpha(0.25);%不透明度

colormap([0,0,1]);%蓝色

end

matlab立方体投影,那些投影到三维的高维立方体,后来都怎么样了?(浅度好文)...相关推荐

  1. matlab为什么要升维数,基于MATLAB和升维投影法的手写字符识别输入系统

    256 现代交际·2019年6期 作者简介:王思达,长春师范大学学生,研究方向:计算机科学与技术:刘勇,长春师范大学学生,研究方向:计算机科学与技术:袁汇灵, 长春师范大学学生,研究方向:计算机科学与 ...

  2. 【光学】基于matlab模拟光栅条纹投影生成

    1 内容介绍 基于matlab模拟光栅条纹投影生成 2 部分代码 function varargout = Main(varargin) % MAIN MATLAB code for Main.fig ...

  3. 基于matlab的手写输入板,基于MATLAB和升维投影法的手写字符识别输入系统

    王思达 刘勇 袁汇灵 摘要:互动式电子白板最早由加拿大SMART Technologies Inc在1331年发明.其最早的用途是会议与培训,并在随后进军到了教育领域.在国内,随着教育正逐渐向数字化. ...

  4. python使用matplotlib可视化3D线框图、线框图可以将数据投影到指定的三维表面上,并输出可视化程度较高的三维效果图

    python使用matplotlib可视化3D线框图.线框图可以将数据投影到指定的三维表面上,并输出可视化程度较高的三维效果图 目录

  5. 基于数字光栅投影的结构光三维测量技术

    概述 欢迎访问 持续更新:https://cgabc.xyz/posts/fb344124/ 本文是在读了论文<基于数字光栅投影的结构光三维测量技术与系统研究>[1]之后做的学习总结,方便 ...

  6. 【光学】基于matlab GUI光栅条纹投影生成【含Matlab源码 2118期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[光学]基于matlab GUI光栅条纹投影生成[含Matlab源码 2118期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2 ...

  7. 基于数字光栅投影的结构光三维测量技术与系统研究

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 文末福利:按描述操作,可获取原书籍电子版. [摘要] 相位测量轮廓术是目前使用最为广泛的一种结构光三维 ...

  8. N圆最密堆积、最小外接正方形的matlab求解(二维、三维等圆Packing 问题)

    圆形最密堆积.最小外接正方形的matlab求解(二维.三维等圆Packing 问题) 0 前言 1 N个圆的最小外接正方形求解 2 N个球的最小外接立方体求解 惯例声明:本人没有相关的工程应用经验,只 ...

  9. css左侧投影_css3投影讲解、投影

    迷茫了好一段时间,今天开始整理一下自己,同时也整理下新的知识. CSS3: 从头开始做起:现在在页面中用到最多的是图片/容器投影,文字投影: 接下来就总结一个投影问题: box-shadow:阴影类型 ...

最新文章

  1. linux svn客户端的使用
  2. OKR能够为企业带来什么价值?如何正确制定OKR?
  3. 武汉首座无人驾驶电动汽车充电站投入使用
  4. 经典的”服务器最多65536个连接”误解
  5. BZOJ 2788[Poi2012]Festival
  6. 项目实战-linux下安装activeMQ
  7. stl文件 python_STL文件,一种前处理网格划分技术??
  8. Linux的awk命令使用心得
  9. Django内置的用户认证
  10. 【编译原理笔记08】语法制导翻译:语法制导定义,SSD的求值顺序,S属性定义与L属性定义
  11. 2. 详解 QEMU 架构
  12. NodeJS - 第一个应用程序Hello World
  13. 常见的五个编译时异常和常见的五个运行时异常
  14. 分布式存储系统——《Neo4j》
  15. arcmap 报错 add field failed
  16. 开源 LighterWebGameEngine框架.外带用框架制作的 网游五彩连珠.
  17. 从零开始构建PHP版mud游戏(二)
  18. 【王老师说运维】:高级运维开发工程师在线评测
  19. 互联网女皇解读2018大势:新技术、云服务和数据隐私【附294页中文版PPT】
  20. 调研技巧(上):以『时间旅行调试』为例

热门文章

  1. eclipse运行maven web项目
  2. LeetCode简单题之统一一致字符串的数目
  3. LeetCode简单题之按照频率将数组升序排序
  4. MyBatis常规CURD详解及拓展~
  5. 2021 年音视频技术与发展
  6. 边端云处理器系列技术参数
  7. 将TVM集成到PyTorch上
  8. 传感器可以让智能手机测量生命体征
  9. 2021年大数据Hive(十一):Hive调优
  10. 第一次接觸sbt會遇到的