clear all; clc; close all;

%% 画五角星

A = ones(2,5);

A(:,1) = [0 1]';

theta = 2*2*pi/5;

for i=2:5

A(:,i) = [cos(theta) sin(theta); -sin(theta) cos(theta)]*A(:, i-1);

end

A = [A A(:,1)];

%% 转换到3D空间内

B = [zeros(1,6); A];

plot3(B(1,:), B(2,:), B(3,:), 'linewidth', 3, 'color', 'y');

set(gcf, 'color', 'k')

set(gca,'nextplot','replacechildren');

axis off

axis equal

view(0,0);

%% 开始旋转

N = 100;

agl = linspace(0, 2*pi, N+1);

agl(end) = [];

F = moviein(N);

D = B;

for k = 1:N;

C = [cos(agl(k)) sin(agl(k)) 0;

-sin(agl(k)) cos(agl(k)) 0;

0 0 1];

for m = 1:6

D(:,m) = C*B(:,m);

end

plot3(D(1,:), D(2,:), D(3,:), 'linewidth', 3, 'color', 'y');

F(k) = getframe;

end

movie(F,5,30);

===================趁老板不在,赶紧来更新了===========================

先上运行结果图吧:

很像一个火锅炉啊~~

主文件main.m:

%---------------------------------------------------------main.m-------------------------------------------------------

clear all; clc; close all;

%% 计算顶点坐标

A = repmat([0 1]', 1, 5);

th = 2*2*pi/5;

for k = 2:6

A(:,k) = [cos(th) sin(th); -sin(th) cos(th)]*A(:,k-1);

end

%% 调用函数计算锥面并绘制

figure; hold on

axis equal

n = 50;

% 第一个锥面,火锅炉的中轴

R1 = abs(A(1,5) - A(1,2))/2;

H1 = abs(A(2,1) - A(2,2));

[X1 Y1 Z1] = conic(R1,H1,n);

Z1 = Z1 - abs(A(2,2));

surfl(X1,Y1,Z1)

% 第二个锥面,火锅炉里汤的水面(其实是个平面)

R2 = abs(A(1,3) - A(1,4))/2;

H2 = 0;

[X2 Y2 Z2] = conic(R2,H2,n);

Z2 = Z2 + abs(A(2,3));

surfl(X2,Y2,Z2)

% 第三个锥面,火锅炉装汤的部分(下表面)

R3 = abs(A(1,3) - A(1,4))/2;

H3 = -R3*tan(36/180*pi);

[X3 Y3 Z3] = conic(R3,H3,n);

Z3 = Z3 + abs(A(2,3));

surfl(X3,Y3,Z3)

% 第四个锥面,最下面的那个小锥面

R4 = abs(A(1,5) - A(1,2))/2;

H4 = R4*tan(36/180*pi);

[X4 Y4 Z4] = conic(R4,H4,n);

Z4 = Z4 - abs(A(2,2));

surfl(X4,Y4,Z4)

% 设定显示细节

view(-130,20)

shading interp

material dull

colormap copper

alpha 0.7

axis off

set(gcf, 'color', [120 120 120]/255)

%-----------------------------------------------------End of main.m---------------------------------------------------------------

绘制圆锥面的函数conic.m:

%-----------------------------------------------------conic.m-------------------------------------------------------------------------

function [X Y Z] = conic(R,H,n)

% 计算底面半径R,高度为H的圆锥面的点坐标

% n越大,分割越精细,显示效果越好,但是数据量大,会卡

% 当H为0时,可以绘制一个平面

r = linspace(0,R,n);

th = linspace(0,2*pi,n);

[RA TH] = meshgrid(r,th);

Z = zeros(n,n);

X = Z;

Y = Z;

for k = 1:n

for m = 1:n

X(k,m) = RA(k,m)*sin(TH(k,m));

Y(k,m) = RA(k,m)*cos(TH(k,m));

Z(k,m) = H/R*(R-RA(k,m));

end

end

%-----------------------------------------------------End of conic.m-------------------------------------------------------------

matlab画转体_如何用MATLAB画五角星围绕其一对称轴旋转的旋转体?相关推荐

  1. matlab seed函数_如何用matlab生成随机数函数_matlab随机数生成函数

    如何用matlab生成随机数函数 1. MATLAB 函数 rand 产生在区间 (0, 1)的均匀随机数,它是平均分布在 (0,1)之间.一个称为seed的值则是用来控制产生随机数的次数.均匀随机数 ...

  2. python turtle画动物_如何用python画简单的动物

    首先来看一下实现效果,如下图:程序猿的生活:Python入门到精通资料大汇总,不啰嗦,全是珍藏资料!​zhuanlan.zhihu.com 具体实现代码请看: # -*- coding:utf-8 - ...

  3. python随机画笑脸_如何用python画笑脸

    如何用python画笑脸?首先我们要先下载安装好python程序,然后再下载安装turtle包.把一切准备工作做完才能开始我们接下来的绘画工作. 1.在我们自己的电脑上找到python 的IDLE工具 ...

  4. python中turtle画笑脸_如何用python画笑脸

    如何用python画笑脸?首先我们要先下载安装好python程序,然后再下载安装turtle包.把一切准备工作做完才能开始我们接下来的绘画工作. 1.在我们自己的电脑上找到python 的IDLE工具 ...

  5. pythonturtle画飞机_如何用 Python 画一个纸飞机?| 原力计划

    以下文章来源于一粒微小的尘埃 ,作者一粒微小的尘埃 [CSDN 编者按]如果你是一个 80 后,可能对于卓依婷的歌曲<纸飞机>并不陌生.歌词里说:" 飞在风里的纸飞机,载满我对你 ...

  6. 用python画耳朵_如何用python画一只兔子

    python的用处真的是太广泛了,今天在网上学习查找资料时,看到有网友用python来画画.用python画出一只兔子,为大家分享一下:如何用python画一只兔子? 画了一只大耳朵小兔子,灵感来源是 ...

  7. 用python画小兔子_如何用Python画一只兔子——turtle库circle()画圆函数的详细用法介绍...

    周末学习了一下turtle库的基本函数,试着画了一只大耳朵小兔子,灵感来源是jellycat邦尼兔.turtle库中circle()函数用来画弧,但和通常先确定原点,再根据半径.夹角画弧的方法有所不同 ...

  8. 用python画耳朵_如何用python画猪头

    用python画猪头的方法:首先设置画布和画笔,代码为[a.screensize(400,300)a.setup(width=400,height=300)]:然后画脸型,代码为[.goto(-100 ...

  9. matlab cat函数_如何用Matlab编写贪吃蛇游戏?(持续更新)

    今后我们实验室的研究重点将会聚焦在"基于游戏的测评"和"教育游戏化"这两个主题上,因此很有必要研究实现"爆款"游戏的一些基本的技术方法.这篇 ...

最新文章

  1. NDK开发 - C/C++ 访问 Java 变量和方法
  2. 【keras】rnn中的LSTM
  3. 最短路计数(spfa)
  4. aspectj xml
  5. 深度学习都是非凸问题_神经网络的损失函数为什么是非凸的?
  6. 【传智播客】Libevent学习笔记(三):事件循环
  7. 2020计算机软考笔试题目,2020年计算机软考信息系统项目管理师巩固练习题及答案...
  8. Unity 血条跟随效果
  9. hdu 1255 覆盖的面积 线段树扫描线求重叠面积
  10. (转)Rust: Rust的 Deref 运算符
  11. Hightopo 受邀参加第二十三届中国国际高新技术成果交易会
  12. [2020-11-30 ]国产化操作系统调研
  13. 插值器和估值器概述与使用
  14. 使用 React Testing Library 和 Jest 完成单元测试
  15. upc 个人训练赛第二场:高精度计算
  16. 课题组亓林博士的论文被 IEEE TGRS 录用
  17. 《当我谈跑步时我谈些什么》书摘
  18. h5广告与html5,那些刷爆朋友圈儿的H5广告大揭秘
  19. 接口测试,利用charles修改app的任意字段
  20. 一文带你掌握MYSQL数据库

热门文章

  1. 吉大c 语言程序设计奥鹏作业,吉大19年9月《C语言程序设计》作业考核试题
  2. 即兴操作:详解Linux安装GCC方法-------------------------这操作很简单搞一波试试看
  3. 一图更比六图强,图片滤镜--java
  4. 用dup2和dup产生一份file descriptor 的拷贝
  5. 1.2线性代数之行列式,余子式及代数余子式
  6. 药瓶药片FPGA设计(已上板验证)
  7. 机器学习工程师与研究员之间的7个主要区别(包括薪水)
  8. 在word中插入pdf中的图片(矢量图)
  9. java 通过 itext生成pdf添加,插入文字,图片
  10. CH55x使用Arduino编程记录(三)Could not get xxx consecutive bytes in internal RAM for area OSEG