matlab心形动态图代码
C语言闪烁心形编码及解析
【C语言】编程输出“小♥”的代码#include<stdio.h>#include<math.h>#include <windows.h>#define r 10#define R 172int main(){int i,j,e;int a;int n;FILE *fp;if((fp=fopen("LOVE.txt","w"))==NULL){printf("File open error!\n");exit(0);}for(i=1,a=r;i<r/2;i++,a--){for(j=(int) ( r-sqrt((r*r-(a-i)*(a-i))) );j>0;j--){printf(" ");fprintf(fp,"%s"," ");}for(e=1;e<=2*sqrt((r*r-(a-i)*(a-i)));e++){printf("\3");fprintf(fp,"%s"," * ");}for(j=(int) ( 2*( r-sqrt((r*r-(a-i)*(a-i)))) );j>0;j--){printf(" ");fprintf(fp,"%s"," ");}for(e=1;e<=2*sqrt( (r*r-(a-i)*(a-i)) );e++){printf("\3");fprintf(fp,"%s"," * ");}printf("\n");fprintf(fp,"%s","\n");}for(i=1;i<40;i++){if(i==6){printf("(∩_∩)YOU AND ME(∩_∩)");i+=24;}printf("\3");fprintf(fp,"%s"," * ");}printf("\n");for(i=1;i<=R/2;i++){if(i%2||i%3)continue;for(j=(int) ( R-sqrt( (double) (R*R-i*i) ) );j>0;j--){printf(" ");fprintf(fp,"%s"," ");}for(e=1;e<=2*( sqrt( (double)(R*R-i*i) ) - (R-2*r) );e++){printf("\3");fprintf(fp,"%s"," * " );}printf("\n");}printf("自动播放:按任意键,自己控制:按0\n");printf("按完后请按enter键\n");scanf("%d",&n);if(n==0){while(1){system("color a");system("pause");system("color b");system("pause");system("color c");system("pause");system("color d");system("pause");system("color e");system("pause");system("color f");system("pause");}}else{while(1){system("color a");Sleep(100);system("color b");Sleep(100);system("color c");Sleep(100);system("color d");Sleep(100);system("color e");Sleep(100);system("color f");Sleep(100);system("color 0");Sleep(100);}}return 0;}循环语句和颜色变换就不说了,发的小♥的代码。
c语言心形代码及图形
#include<stdio.h>#include<math.h>#include <windows.h>#define r 10#define R 172int main(void){FILE *fp;int n;if((fp=fopen("LOVE.txt","w"))==NULL){printf("File open error!\n");exit(0);}int i,j,e;int a;for(i=1,a=r;i<r/2;i++,a--){for(j=(int) ( r-sqrt((r*r-(a-i)*(a-i))) );j>0;j--) {printf(" ");fprintf(fp,"%s"," ");}for(e=1;e<=2*sqrt((r*r-(a-i)*(a-i)));e++){printf("\3");fprintf(fp,"%s"," * ");}for(j=(int) ( 2*( r-sqrt((r*r-(a-i)*(a-i)))) );j>0;j--) {printf(" ");fprintf(fp,"%s"," ");}for(e=1;e<=2*sqrt( (r*r-(a-i)*(a-i)) );e++){printf("\3");fprintf(fp,"%s"," * ");}printf("\n");fprintf(fp,"%s","\n");}for(i=1;i<40;i++){if(i==6){printf("(∩_∩)I LOVE MY MOTHER(∩_∩)");i+=30;}printf("\3");fprintf(fp,"%s"," * ");}printf("\n");for(i=1;i<=R/2;i++){if(i%2||i%3)continue;for(j=(int) ( R-sqrt( (double) (R*R-i*i) ) );j>0;j--){printf(" ");fprintf(fp,"%s"," ");}for(e=1;e<=2*( sqrt( (double)(R*R-i*i) ) - (R-2*r) );e++) {printf("\3");fprintf(fp,"%s"," * " );}printf("\n");}printf("请选着播放形式:\n自动播放:按 1 ,控制播放:按 0\n"); printf("按完数字后请按enter键\n");scanf("%d",&n);if(n==0){while(1){system("color a");system("pause");system("color b");system("pause");system("color c");system("pause");system("color d");system("pause");system("color e");system("pause");system("color f");system("pause");}}else{while(1){system("color a");Sleep(100);system("color b");Sleep(100);system("color c");Sleep(100);system("color d");Sleep(100);system("color e");Sleep(100);system("color f");Sleep(100);system("color 0");Sleep(100);}}return 0;}欢迎您的下载,资料仅供参考!致力为企业和个人提供合同协议,策划案计划书,学习课件等等打造全网一站式需求。
matlab动画-流星雨
clc;%清屏ysy=figure('name','一起去看流星雨');%标题axis([0 80 0 80]);hold on;axis off;set(ysy,'color','k');%设置背景为黑色%%%%%以下是画月亮t6=-pi/3:0.01:0;x6=60+10*cos(t6);y6=60+10*sin(t6);plot(x6,y6,'color',[1 1 0]);%画第一条弧线t7=-pi*2/3:0.01:pi/3;x7=67.5+5*cos(t7);y7=60-sqrt(3)*5/2+5*sin(t7);plot(x7,y7,'color',[1 1 0]);%画第二条弧线fill([x6,x7],[y6,y7],'y');%将月亮填充为黄色%%%%%以下为画五角星line([30,33,34,35,38,36,38,34,30,32,30],[60,60,62.5,60,60,59,56.5,58,56.5,59,60],...'color','b','MarkerEdgeColor','b','linewidth',2);%画五角星fill([30,33,34,35,38,36,38,34,30,32,30],...[60,60,62.5,60,60,59,56.5,58,56.5,59,60],'b');%填充五角星%%%%%以下是画人%%%%%%%男t8=0:0.01:2*pi;x8=40+2*cos(t8);y8=24+4*sin(t8);plot(x8,y8,'b','linewidth',2);%%%%%画头line([40,40.8],[26,26],'color','y');%左眼line([41.4,41.8],[26,26],'color','y');%右眼line(41.3,24.1,'color','y','linestyle','.','erasemode','xor','markersize',5);%鼻line([41,41.8],[22,22],'color','y');%嘴line([39.8,39.8,38.3,38.3,41.7,41.7,40.8,40.8,39.8],[20,19,18.7,0,0.5,18.7,19,20,20],...'color','b','linewidth',2);%躯干line([41.7,41.7],[13.4,16.2],'color','k','linewidth',2)%清除被手臂挡住的线line([40.7,40.7],[0.35,8.7],'color','b','linewidth',2);%用一条线将矩形分开,就是腿line([40,41,44,45,41,40],[18.2,16,18.8,17.8,13.1,15.3],'color','b','linewidth',2);%%胳膊%%%%%%%%女t9=0:0.01:2*pi;x9=50+2*cos(t8);y9=22+4*sin(t8);plot(x9,y9,'color','m','linewidth',2);%%%%%画头line([50,49.2],[24,24],'color','y');%左眼line([48.2,48.6],[24,24],'color','y');%右眼line(48.7,22.1,'color','y','linestyle','.','erasemode','xor','markersize',5);%鼻line([48.2,49.2],[20,20],'color','y');%嘴line([49.8,49.8,48.3,48.3,46.3,48.3,48.3,51.7,51.7,53.7,51.7,51.7,50.8,50.8],...[18,17,16.7,8,4,4,0.5,0,4,4,8,16.7,17,18],'color','m','linewidth',2);%躯干line([48.3,48.3],[14.1,16.1],'color','k','linewidth',2)%清除挡住的线line([49.3,49.3],[0.35,4],'color','m','linewidth',2);%腿line([50,47.8,45.8,45,47.8,50],[16.4,16,18.4,17.8,14,14.4],'color','m','linewidth',2);%%胳膊b1=text(20,70,'哇塞!流星雨来了!','fontsize',16,'color','r');%输入字pause(1);%停顿一秒delete(b1);%删除b1b2=text(22,68,'听说...','fontsize',16,'color','r');pause(1);delete(b2);b3=text(24,66,'在流星雨下许的愿,一定会实现!','fontsize',16,'color','r');pause(2);delete(b3);b4=text(54,28,'愿我们相伴一生!','fontsize',16,'color','r');b5=text(10,30,'愿执子之手,','fontsize',16,'color','r');b6=text(12,22,'与子偕老!','fontsize',16,'color','r');a1=line(5,70,'color','w','linestyle','.','erasemode','xor','markersize',10);%流星1a2=line(5,65,'color','w','linestyle','.','erasemode','xor','markersize',10);%流星2a3=line(5,60,'color','w','linestyle','.','erasemode','xor','markersize',10);%流星3a4=line(5,55,'color','w','linestyle','.','erasemode','xor','markersize',10);%流星4a5=line(5,50,'color','w','linestyle','.','erasemode','xor','markersize',10);%流星5x1=5;%流星1的初始横坐标y1=70;;%流星1的初始纵坐标x2=5;y2=65;x3=5;y3=60;x4=5;y4=55;x5=5;y5=50;dt1=0.4375;%递增量dt2=0.1;%递增量t1=x1;t2=x2;t3=x3;t4=x4;t5=x5;r1=1;%画心形中的小圆半径r2=4;%画心形中的大圆半径c1=39;%小圆1的初始横坐标d1=33;%小圆1的初始纵坐标c2=41;%小圆2的初始横坐标d2=33;%小圆2的初始纵坐标c3=38;%大圆1的初始横坐标d3=33;%大圆1的初始纵坐标c4=42;%大圆2的初始横坐标d4=33;%大圆2的初始纵坐标f1=c1+10;%第二个心形中小圆1的横坐标f2=c2+10;%第二个心形中小圆2的横坐标f3=c3+10;%第二个心形中大圆1的横坐标f4=c4+10;%第二个心形中大圆2的横坐标%第二个心形中的纵坐标跟第一个共用t=0.09;%递增量t10=0:0.01:pi;%设置弧度t11=-pi*11/30:0.01:0;t12=-pi:0.01:-pi*19/30;%流星雨开始及心形移动while t5<80 %循环开始t1=t1+dt1;t2=t2+dt1;t3=t3+dt1;t4=t4+dt1;t5=t5+dt1;x1=t1;x2=t2;x3=t3;x4=t4;x5=t5;y1=y1+dt2;y2=y2+dt2;y3=y3+dt2;y4=y4+dt2;y5=y5+dt2;set(a1,'xdata',[x1,x1],'ydata',[y1,y1]);%流星1的移动set(a2,'xdata',[x2,x2],'ydata',[y2,y2]);%流星2的移动set(a3,'xdata',[x3,x3],'ydata',[y3,y3]);%流星3的移动set(a4,'xdata',[x4,x4],'ydata',[y4,y4]);%流星4的移动set(a5,'xdata',[x5,x5],'ydata',[y5,y5]);%流星5的移动c1=c1+t/3.2;c2=c2+t/3.2;c3=c3+t/3.2;c4=c4+t/3.2;f1=f1-t/3.2;f2=f2-t/3.2;f3=f3-t/3.2;f4=f4-t/3.2;d1=d1+t;d2=d2+t;d3=d3+t;d4=d4+t;c5=c1+r1*cos(t10);d5=d1+r1*sin(t10);f5=f1+r1*cos(t10);c6=c2+r1*cos(t10);d6=d2+r1*sin(t10);f6=f2+r1*cos(t10);c7=c3+r2*cos(t11);d7=d3+r2*sin(t11);f7=f3+r2*cos(t11);c8=c4+r2*cos(t12);d8=d4+r2*sin(t12);f8=f4+r2*cos(t12);plot(c5,d5,'r');%小圆弧1plot(c6,d6,'r');%小圆弧2plot(c7,d7,'r');%大圆弧1plot(c8,d8,'r');%大圆弧2plot(f5,d5,'r');%第二个心形小圆弧1plot(f6,d6,'r');%小圆弧2plot(f7,d7,'r');%大圆弧1plot(f8,d8,'r');%大圆弧2pause(0.01);%停顿0.01秒drawnow;fill([c1-1.1,c2+1.1,c2+1.1,c1-1.1],[d1-4,d1-4,d2+1,d2+1],'k');%除去显示出来的心形1,以便移动fill([f1-1.1,f2+1.1,f2+1.1,f1-1.1],[d1-4,d1-4,d2+1,d2+1],'k');%除去显示出来的心形2,以便移动end;%循环结束plot(c5,d5,'r');plot(c6,d6,'r');plot(c7,d7,'r');plot(c8,d8,'r');%显示最后的心形。
C语言循环心形代码
C语言循环心形代码在C语言中,使用循环语句可以实现很多有趣的图形。
本文将介绍一个用循环语句实现的心形图案,代码非常简单,只有14行,但可以启迪大家利用循环语句实现更丰富的图形。
```c#include <stdio.h>代码中的核心思想是要把心形图案抽象成一个数学公式,然后通过嵌套循环逐渐绘制出来。
具体来说,我们可以通过改变(x,y)坐标系下的x和y的值来控制绘制的位置。
首先,我们需要明确一个数学公式:x2 + y2 − 1 = x3 − y3这个公式可以被转换为:接下来,我们将这个公式转化为代码:```cheart = ((x * x + y * y - 1)*(x * x + y * y - 1)*(x * x + y * y - 1) - x * x * y * y * y) / 1000000.0;```这里的heart代表心形图案中每一个点的值,根据这个值,我们可以判断它应该画上实心还是空心,这就是最后一个for循环用来完成的。
在这个循环中,首先从y=30开始,每一次循环减小一行,一直划到y=-30为止。
在每一行中,从x=-30开始,每一次循环增加一列,一直划到x=30为止,这样我们就可以在(-30,30)这个范围内绘制出整个心形图案。
在每一个坐标点上,我们需要计算出它对应的heart值。
如果这个值小于等于0.01,我们就画上一个实心的星号,否则就留空。
这里选择的0.01是一个适当的界限值,具体大家可以根据自己的喜好修改。
最后,我们可以运行程序,就可以得到一个漂亮的心形图案了。
输出结果:```**********************************************************************************************************************************************```此代码可以作为初学者用C语言练习循环语句的学习范例,同时也是一个很不错的创意实现。
c语言跳动爱心代码
c语言跳动爱心代码C语言作为一种广泛应用于计算机编程的语言,不仅可以实现各种功能,还可以用来表达情感。
今天,我想和大家分享一个特别的C语言代码——跳动爱心代码。
首先,我们需要了解一下C语言的基本语法和数据类型。
C语言是一种结构化的编程语言,它使用变量来存储和操作数据。
在C语言中,我们可以使用基本数据类型,如整型、浮点型和字符型,来定义变量。
此外,C语言还提供了一些控制结构,如条件语句和循环语句,来控制程序的执行流程。
接下来,让我们来编写跳动爱心代码。
首先,我们需要使用C语言的图形库来绘制爱心图案。
在C语言中,我们可以使用图形库函数来绘制各种图形。
这里,我们使用了一个简单的图形库函数来绘制一个爱心图案。
```c#include <stdio.h>#include <graphics.h>int main(){int gd = DETECT, gm;initgraph(&gd, &gm, "");int x = getmaxx() / 2;int y = getmaxy() / 2;for (int i = 0; i <= 300; i++){setcolor(i % 15 + 1);circle(x - i / 2, y - i / 2, i);circle(x + i / 2, y - i / 2, i);delay(10);cleardevice();}closegraph();return 0;}```在这段代码中,我们首先使用`initgraph`函数来初始化图形库。
然后,我们使用`getmaxx`和`getmaxy`函数来获取屏幕的宽度和高度,以便将爱心图案绘制在屏幕的中心位置。
接下来,我们使用一个循环来绘制跳动的爱心图案。
在每次循环中,我们使用`setcolor`函数来设置绘制图形的颜色,然后使用`circle`函数来绘制两个圆形,形成一个爱心图案。
Matlab-制作动画
保存动画的示例1
• 三维动画
[x,y,z]=peaks(30); %peaks产生一个凹凸有致的曲面 surf(x,y,z) %用X和Y定义x-y坐标网格,Z定义网格上每一点的高度,来生成三维曲面 axis([-3 3 -3 3 -10 10]) m=moviein(15); for i=1:15 view(-37.5+24*(i-1),30) m(:,i)=getframe; end movie(m)
surf(sin(2*pi*j/20)*Z,Z) F(j) = getframe; end movie(F,20)
15
其它动画示例程序
clear;clc; [x,y]=meshgrid(-8:.1:8); for j=1:20 f=@(x,y)(sin(sqrt((11-j)*(x.^2+y.^2)))./sqrt((11-j)*(x.^2+y.^2)+eps)); z=f(x,y); surf(x,y,z);shading interp; M(j) = getframe; if j==1 [I,map]=rgb2ind(M(j).cdata,256); imwrite(I,map,'out.gif','DelayTime',.1) else imwrite(rgb2ind(M(j).cdata,map),map,'out.gif','WriteMode','append','DelayTime',.1) end end movie2avi(M,'out.avi')
• 一般格式:
for i=1:n figure(i) F(i)=getframe; end; movie2avi(F,'...filename.avi')
vb动态爱心代码
vb动态爱心代码VB动态爱心代码是一种在Visual Basic程序开发中常用的代码技术,它可以通过编写一定的代码实现爱心动态效果的展示。
这种技术常常被应用于网页制作、软件UI 设计和图形动画等领域中,达到提升用户体验、增强视觉效果等诸多效果。
下面,本文将对VB动态爱心代码进行详细阐述。
一、VB动态爱心代码的基础原理VB动态爱心代码其实是基于数学图形学的基础原理实现的。
具体来说,就是通过矢量、二维变换等于一系列的计算,将爱心的形状固定在一个特定的坐标轴上,并且在此基础上完成了一些重要属性的变化,如颜色、大小等,从而实现了爱心的动态展示。
二、VB动态爱心代码的编写过程1、新建VB程序首先,在Visual Basic开发环境中,需要新建一个VB窗体程序,并且添加相应的控件和属性。
2、编写相应代码在VB窗体程序中,需要通过编写相应的代码,实现爱心的动态展示。
由于本文的主要重点是VB动态爱心代码的编写,因此以下将对部分核心代码进行详细说明。
Dim X, Y, a, b, T, m As Single m = 50 a = 5 'a表示心形图纸上的横向半轴长 b = 4 'b表示心形图纸上的纵向半轴长 T = 0.1 随着上述初始值的赋值,心形图就可以顺利地生成。
3、实现效果最后,在编写完相应的代码之后,就可以完成VB动态爱心代码的应用,并且实现特定效果的展示,使爱心形状呈现出不同的运动轨迹和颜色特效,同时提升动态效果的视觉效果。
三、VB动态爱心代码的应用范围VB动态爱心代码广泛应用于软件开发、网页设计、图形动画等领域,具有良好的可移植性和易用性,在这些领域中,VB动态爱心代码的应用有以下优点:1、提升用户体验通过VB动态爱心代码的应用,可以给用户带来非常好的视觉体验,特别是在软件UI界面设计和网页设计中,可以增强产品、品牌的代表性。
2、增强视觉效果VB动态爱心代码具有较强的可视化效果,通过灵活组合不同颜色,形状等要素,可以展示出丰富的图形视觉效果,提升软件、网页等产品在用户中的美感和可读性。
MATLAB绘制函数动态图
创新思维训练指导老师:李安完成日期:2015年7月8日题目:利用MATLAB绘制函数动态图形目的:(1)初步了解MATLAB的界面以及简单应用;(2)学会用MATLAB绘制常见图形;(3)通过制图,进一步加深对函数的理解,观察函数的性质。
内容:1、绘制基本的一元函数动态图例:在一个坐标系中绘制函数y=x^2,y=x,y=cos(x)的图形,并通过movie绘制上述函数动画。
步骤:(1)选定题目:三个小组成员一起选定一个要做的创新思维题目;(2)想法集合:选好题目后,每个成员开动脑筋,说说自己的想法以及思路,然后将所有人的思路汇总在一起;(3)分工合作:三人分别负责一个模块,一人负责程序,一人负责调试,一人负责写作,三人分工明确,彼此独立,却又相互依存。
基本程序:clc;clear;x=-2:0.05:2;y1=x.^2;y2=x;y3=cos(x);figure(1)上述程序比较简单,只能实现三个函数的静态表现,而且图像未经任何修饰。
之后通过小组讨论,上网查阅,将程序进一步的修改和完善,最终达到预期效果。
最终程序如下:最终源码:clc;clear;x=-2:0.05:2;xlabel('x'),ylabel('y')title('y=x^2和y=x和y=cos(x)的图像','Color','b');text(-1.35,1.5,'\rightarrow y1=x^2');text(-1,-1,'\leftarrow y2=x');text(1.8,0,'\leftarrow y3=cos(x)');y1=x.^2;y2=x;y3=cos(x);figure(1)n=length(x);grid onhold onfor i=1:nplot(x(i),y1(i),'gp',x(i),y2(i),'r*',x(i),y3(i),'c+');axis([min(x)-1 max(x)+1 min(y1)-1 max(y1)+1]);axis([min(x)-1 max(x)+1 min(y2)-1 max(y2)+1]);axis([min(x)-1 max(x)+1 min(y3)-1 max(y3)+1]);M(i)=getframe;pause(0.1);endmovie(M);legend('\ity=x^2','\ity=x','\ity=cos(x)')运行程序后的结果:三条函数均能以动态点型绘出,其中函数y=x^2表现为绿色五星型,函数y=x表现为红色星号,函数y=cos(x)表现为青色十字型。
matlab绘制动态三维心形代码(蛋疼的情人节奉献)
Matlab绘制三维动态心形It’s OK to send a pic to your girlfriend on Valentine's Day情人节蛋疼玩意效果图:原始代码:%仅供参考,自助修改,原则上自己动手,要是非常强烈的要帮忙%可以联系我的QQ 865802870 ,但愿我还在上面.Source code:%构造体积方程和坐标轴,画出图形;linspace(a,b,c)均匀生成介于a到b的c个值,c 的默认为100。
Meshgrid生成矩阵网格。
[X,Y,Z] = meshgrid(linspace(-3,3,101));%3D心型图方程如下;F = -X.^2.*Z.^3-(9/80).*Y.^2.*Z.^3+(X.^2+(9/4).*Y.^2+Z.^2-1).^3;hFigure = figure;sz = get(hFigure, 'Position');set(hFigure, 'Position', [sz(1)-0.15*sz(3) sz(2) 1.3*sz(3) sz(4)]);set(hFigure,'color','w', 'menu','none')hAxes = axes('Parent',hFigure,'NextPlot','add',...'DataAspectRatio',[1 1 1],...'XLim',[30 120],'YLim',[35 65],'ZLim',[30 75]);view([-39 30]);axis off% 制作出动态的隐形效果;hidden on% 画出网格,制作网格动态效果;% 快渲染心得背面:p = patch(isosurface(F,-0.001));set(p,'FaceColor','w','EdgeColor','w');% 构造Y-Z平面,,描完函数在该平面的点:for iX = [35 38 41 45 48 51 54 57 61 64 67]plane = reshape(F(:,iX,:),101,101);cData = contourc(plane,[0 0]);xData = iX.*ones(1,cData(2,1));plot3(hAxes,xData,cData(2,2:end),cData(1,2:end),'r');pause(.1), drawnowend% 构造X-Z平面,描完函数在该平面的点:for iY = [41 44 47 51 55 58 61]plane = reshape(F(iY,:,:),101,101);cData = contourc(plane,[0 0]);yData = iY.*ones(1,cData(2,1));plot3(hAxes,cData(2,2:end),yData,cData(1,2:end),'r');pause(.1), drawnowend% 构造X-Y平面,描完函数在该平面的点:for iZ = [36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 69 71] plane = F(:,:,iZ);cData = contourc(plane,[0 0]);startIndex = 1;if size(cData,2) > (cData(2,1)+1)startIndex = cData(2,1)+2;zData = iZ.*ones(1,cData(2,1));plot3(hAxes,cData(1,2:(startIndex-1)),...cData(2,2:(startIndex-1)),zData,'r');endzData = iZ.*ones(1,cData(2,startIndex));plot3(hAxes,cData(1,(startIndex+1):end),...cData(2,(startIndex+1):end),zData,'r');pause(.1), drawnowend%给三维心着色set(p,'FaceColor','r','EdgeColor','w');pause(.2);set(p,'FaceColor','w','EdgeColor','r');%函数已经画完,接下来为文字部分;pause(.2)%设置字体大小,粗细,位置等,以下是打出I (心型图) Wendy;text(7,50,70,'I', 'fontWeight','bold','FontAngle','italic','FontName','Trebuchet MS','fontsize',60,'Color','r')pause(.5)text(80,50,43,'Math', 'fontWeight','bold','FontAngle','italic','FontName','Trebuchet MS','fontsize',60,'Color','r')pause(.2)line([20 80],[50 50],[52.5 52.5], 'color','r')line([50 50],[20 80],[52.5 52.5], 'color','r')line([50 50],[50 50],[30 80], 'color','r')%制作者签名;text(40,60,30,'Made By William 8/8/2012', 'fontsize',8)text(35,45,30,'', 'fontsize',8)%制作心的动态效果% for i =1:28% set(p,'FaceColor','r','EdgeColor','w');% pause(.1);% set(p,'FaceColor','r','EdgeColor','r');% pause(.2)% end% refer to /art/898961...%and/questions/1526898/how-do-i-reproduce-this-heart-shaped-m esh-in-matlab1%笛卡尔;x=0:0.01:2*pi;y=1-cos(x);polar(x,y)2%简单心;figure(2)ezplot(vectorize('17*x^2-16*abs(x)*y+17*y^2-225'));3%完美心;4figure(1)5N=200;6f1=@(x,y,z)(x.^2+(9/4)*y.^2+z.^2-1).^3-x.^2.*z.^3-(11/80)*y.^2.*z.^3;7[X,Y,Z]=meshgrid(linspace(-1.5,1.5,N));8set(patch(isosurface(X,Y,Z,f1(X,Y,Z),0)),'facecolor','r','edgecolor','none');9light10view(-10,24)11%心痕;12[x,y,z]=meshgrid(linspace(-1.3,1.3));13val=(x.^2 + (9/4)*y.^2 + z.^2 - 1).^3 - x.^2.*z.^3 - (1/9)*y.^2.*z.^3;%画出等值面14isosurface(x,y,z,val,0);% View 视角colormap 色图0-115axis equal;view(-10,10);colormap([1 0.2 0.2])16%花心;17clear;clc;close all18c=5;19t=linspace(-c,c);20[x,y]=meshgrid(t);21z=17*x.^2-16*abs(x).*y+17*y.^2-225;22pcolor(x,y,z);23shading interp24pause(2);25spinmap(10)26%构造体积方程和坐标轴,画出图形;27[X,Y,Z] = meshgrid(linspace(-3,3,101));2829%3D心型图方程如下;30 F = -X.^2.*Z.^3-(9/80).*Y.^2.*Z.^3+(X.^2+(9/4).*Y.^2+Z.^2-1).^3;31hFigure = figure;32sz = get(hFigure, 'Position');33set(hFigure, 'Position', [sz(1)-0.15*sz(3) sz(2) 1.3*sz(3) sz(4)]); 34set(hFigure,'color','w', 'menu','none')3536hAxes = axes('Parent',hFigure,'NextPlot','add',...37'DataAspectRatio',[1 1 1],...38'XLim',[30 120],'YLim',[35 65],'ZLim',[30 75]);39view([-39 30]);40axis off4142% 制作出动态的隐形效果;4344hidden on4546% 画出网格,制作网格动态效果;474849% 快渲染心得背面:5051p = patch(isosurface(F,-0.001));52set(p,'FaceColor','w','EdgeColor','w');5354% 构造Y-Z平面,,描完函数在该平面的点:55for iX = [35 38 41 45 48 51 54 57 61 64 67]56plane = reshape(F(:,iX,:),101,101);57cData = contourc(plane,[0 0]);58xData = iX.*ones(1,cData(2,1));59plot3(hAxes,xData,cData(2,2:end),cData(1,2:end),'k');60pause(.1), drawnow61end6263% 构造X-Z平面,描完函数在该平面的点:64for iY = [41 44 47 51 55 58 61]65plane = reshape(F(iY,:,:),101,101);66cData = contourc(plane,[0 0]);67yData = iY.*ones(1,cData(2,1));68plot3(hAxes,cData(2,2:end),yData,cData(1,2:end),'k');69pause(.1), drawnow70end7172% 构造X-Y平面,描完函数在该平面的点:73for iZ = [36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 69 71] 74plane = F(:,:,iZ);75cData = contourc(plane,[0 0]);76startIndex = 1;77if size(cData,2) > (cData(2,1)+1)78startIndex = cData(2,1)+2;79zData = iZ.*ones(1,cData(2,1));80plot3(hAxes,cData(1,2:(startIndex-1)),... 81cData(2,2:(startIndex-1)),zData,'k');82end83zData = iZ.*ones(1,cData(2,startIndex)); 84plot3(hAxes,cData(1,(startIndex+1):end),... 85cData(2,(startIndex+1):end),zData,'k');86pause(.1), drawnow87end。
c语言代码爱心动态
c语言代码爱心动态C语言代码爱心动态前言计算机科学是一门非常有趣的学科,它不仅涉及到硬件和软件,还涉及到算法和数据结构等方面。
而编程语言则是计算机科学中的重要组成部分,C语言作为一种高效、快速、通用的编程语言,被广泛应用于操作系统、嵌入式系统、游戏开发等领域。
本文将介绍如何使用C语言代码实现一个爱心动态。
准备工作在开始写代码之前,我们需要先了解一下如何在C语言中绘制图形。
C 语言并没有提供直接绘制图形的函数库,但我们可以使用第三方库来实现这个功能。
在本文中,我们将使用graphics.h库来绘制图形。
graphics.h是一个基于BGI(Borland Graphics Interface)的图形库,在Windows平台上可以直接使用。
但是,在其他平台上需要进行一些配置才能使用。
这里我们不再赘述。
步骤一:绘制两个圆首先,我们需要绘制两个圆来构成爱心的左右两侧。
代码如下:```#include <graphics.h>#include <math.h>int main(){initgraph(640, 480); // 初始化窗口int x1 = 240, y1 = 200, x2 = 400, y2 = 200; // 圆心坐标 int r = 50; // 圆的半径setcolor(RED); // 设置颜色为红色circle(x1, y1, r); // 绘制左侧圆circle(x2, y2, r); // 绘制右侧圆getch(); // 暂停程序,等待用户按下任意键结束程序closegraph(); // 关闭窗口return 0;}```运行代码,可以看到窗口中绘制了两个红色的圆。
步骤二:绘制两条直线接下来,我们需要在两个圆之间绘制一条直线。
代码如下:```#include <graphics.h>#include <math.h>int main(){initgraph(640, 480); // 初始化窗口int x1 = 240, y1 = 200, x2 = 400, y2 = 200; // 圆心坐标int r = 50; // 圆的半径setcolor(RED); // 设置颜色为红色circle(x1, y1, r); // 绘制左侧圆circle(x2, y2, r); // 绘制右侧圆line(x1 + r * cos(45), y1 + r * sin(45), x2 - r * cos(45), y2 + r * sin(45)); // 绘制直线getch(); // 暂停程序,等待用户按下任意键结束程序closegraph(); // 关闭窗口return 0;}运行代码,可以看到窗口中绘制了两个圆和一条直线。
MATLAB_动态图
surf(Z);
axis tight manual off%保持刻度不随数据的大小而变化,以数据的大小为坐标轴的范围,不显示坐标系 set(gca,'nextplot','replacechildren'); %在当前设置下清清除所有子对象 for k = 1:nFrames
5
移动坐标轴
% ligo 数据来源: /science/GW100916/Lstrain_hp30-968654552-10.txt ligodata=load('D:\LIGOdata.txt'); ligodata=ligodata'; t=linspace(0,10,163840); subplot(2,1,1); plot(t,ligodata); title('LIGO Livingston Observatory data for GW100916'); xlabel('Time[Seconds] from 2010-09-16 06:42:17 UTC (968654552.0)'); ylabel('Gravitational-wave strain amplitude');
for k = 0:3:360
view(k,37.5); drawnow; end
15
切换视角
16
运动轨迹
运动轨迹可以利用comet或comet3来实现 comet(x,y,p) comet3(x,y,z,p)
p可取[0,1],它制定‚彗星‛拖尾的长度,p越大就越长
mov(k) = getframe(gcf);
matlab绘制动态三维心形代码(蛋疼的情人节奉献)
Matlab绘制三维动态心形It’s OK to send a pic to your girlfriend on Valentine's Day情人节蛋疼玩意效果图:原始代码:%仅供参考,自助修改,原则上自己动手,要是非常强烈的要帮忙%可以联系我的,但愿我还在上面.Source code:%构造体积方程和坐标轴,画出图形;linspace(a,b,c)均匀生成介于a到b的c个值,c 的默认为100。
Meshgrid生成矩阵网格。
[X,Y,Z] = meshgrid(linspace(-3,3,101));%3D心型图方程如下;F = -X.^2.*Z.^3-(9/80).*Y.^2.*Z.^3+(X.^2+(9/4).*Y.^2+Z.^2-1).^3;hFigure = figure;sz = get(hFigure, 'Position');set(hFigure, 'Position', [sz(1)*sz(3) sz(2) *sz(3) sz(4)]);set(hFigure,'color','w', 'menu','none')hAxes = axes('Parent',hFigure,'NextPlot','add',...'DataAspectRatio',[1 1 1],...'XLim',[30 120],'YLim',[35 65],'ZLim',[30 75]);view([-39 30]);axis off% 制作出动态的隐形效果;hidden on% 画出网格,制作网格动态效果;% 快渲染心得背面:p = patch(isosurface(F,);set(p,'FaceColor','w','EdgeColor','w');% 构造Y-Z平面,,描完函数在该平面的点:for iX = [35 38 41 45 48 51 54 57 61 64 67]plane = reshape(F(:,iX,:),101,101);cData = contourc(plane,[0 0]);xData = iX.*ones(1,cData(2,1));plot3(hAxes,xData,cData(2,2:end),cData(1,2:end),'r');pause(.1), drawnowend% 构造X-Z平面,描完函数在该平面的点:for iY = [41 44 47 51 55 58 61]plane = reshape(F(iY,:,:),101,101);cData = contourc(plane,[0 0]);yData = iY.*ones(1,cData(2,1));plot3(hAxes,cData(2,2:end),yData,cData(1,2:end),'r');pause(.1), drawnowend% 构造X-Y平面,描完函数在该平面的点:for iZ = [36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 69 71] plane = F(:,:,iZ);cData = contourc(plane,[0 0]);startIndex = 1;if size(cData,2) > (cData(2,1)+1)startIndex = cData(2,1)+2;zData = iZ.*ones(1,cData(2,1));plot3(hAxes,cData(1,2:(startIndex-1)),...cData(2,2:(startIndex-1)),zData,'r');endzData = iZ.*ones(1,cData(2,startIndex));plot3(hAxes,cData(1,(startIndex+1):end),...cData(2,(startIndex+1):end),zData,'r');pause(.1), drawnowend%给三维心着色set(p,'FaceColor','r','EdgeColor','w');pause(.2);set(p,'FaceColor','w','EdgeColor','r');%函数已经画完,接下来为文字部分;pause(.2)%设置字体大小,粗细,位置等,以下是打出I (心型图) Wendy;text(7,50,70,'I', 'fontWeight','bold','FontAngle','italic','FontName','Trebuchet MS','fontsize',60,'Color','r')pause(.5)text(80,50,43,'Math', 'fontWeight','bold','FontAngle','italic','FontName','Trebuchet MS','fontsize',60,'Color','r')pause(.2)line([20 80],[50 50],[ ], 'color','r')line([50 50],[20 80],[ ], 'color','r')line([50 50],[50 50],[30 80], 'color','r')%制作者签名;text(40,60,30,'Made By William 8/8/2012', 'fontsize',8)text(35,45,30,'', 'fontsize',8)%制作心的动态效果% for i =1:28% set(p,'FaceColor','r','EdgeColor','w');% pause(.1);% set(p,'FaceColor','r','EdgeColor','r');% pause(.2)% end% refer to1%笛卡尔;x=0::2*pi;y=1-cos(x);polar(x,y)2%简单心;figure(2)ezplot(vectorize('17*x^2-16*abs(x)*y+17*y^2-225'));3%完美心;4figure(1)5N=200;6f1=@(x,y,z)(x.^2+(9/4)*y.^2+z.^2-1).^3-x.^2.*z.^3-(11/80)*y.^2.*z.^3;7[X,Y,Z]=meshgrid(linspace,,N));8set(patch(isosurface(X,Y,Z,f1(X,Y,Z),0)),'facecolor','r','edgecolor','none');9light10view(-10,24)11%心痕;12[x,y,z]=meshgrid(linspace,);13val=(x.^2 + (9/4)*y.^2 + z.^2 - 1).^3 - x.^2.*z.^3 - (1/9)*y.^2.*z.^3;%画出等值面14isosurface(x,y,z,val,0);% View 视角colormap 色图0-115axis equal;view(-10,10);colormap([1 ])16%花心;17clear;clc;close all18c=5;19t=linspace(-c,c);20[x,y]=meshgrid(t);21z=17*x.^2-16*abs(x).*y+17*y.^2-225;22pcolor(x,y,z);23shading interp24pause(2);25spinmap(10)26%构造体积方程和坐标轴,画出图形;27[X,Y,Z] = meshgrid(linspace(-3,3,101));2829%3D心型图方程如下;30 F = -X.^2.*Z.^3-(9/80).*Y.^2.*Z.^3+(X.^2+(9/4).*Y.^2+Z.^2-1).^3; 31hFigure = figure;32sz = get(hFigure, 'Position');33set(hFigure, 'Position', [sz(1)*sz(3) sz(2) *sz(3) sz(4)]);34set(hFigure,'color','w', 'menu','none')3536hAxes = axes('Parent',hFigure,'NextPlot','add',...37'DataAspectRatio',[1 1 1],...38'XLim',[30 120],'YLim',[35 65],'ZLim',[30 75]);39view([-39 30]);4142% 制作出动态的隐形效果;4344hidden on4546% 画出网格,制作网格动态效果;474849% 快渲染心得背面:5051p = patch(isosurface(F,);52set(p,'FaceColor','w','EdgeColor','w');5354% 构造Y-Z平面,,描完函数在该平面的点:55for iX = [35 38 41 45 48 51 54 57 61 64 67]56plane = reshape(F(:,iX,:),101,101);57cData = contourc(plane,[0 0]);58xData = iX.*ones(1,cData(2,1));59plot3(hAxes,xData,cData(2,2:end),cData(1,2:end),'k'); 60pause(.1), drawnow61end6263% 构造X-Z平面,描完函数在该平面的点:64for iY = [41 44 47 51 55 58 61]65plane = reshape(F(iY,:,:),101,101);66cData = contourc(plane,[0 0]);67yData = iY.*ones(1,cData(2,1));68plot3(hAxes,cData(2,2:end),yData,cData(1,2:end),'k'); 69pause(.1), drawnow7172% 构造X-Y平面,描完函数在该平面的点:73for iZ = [36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 69 71] 74plane = F(:,:,iZ);75cData = contourc(plane,[0 0]);76startIndex = 1;77if size(cData,2) > (cData(2,1)+1)78startIndex = cData(2,1)+2;79zData = iZ.*ones(1,cData(2,1));80plot3(hAxes,cData(1,2:(startIndex-1)),...81cData(2,2:(startIndex-1)),zData,'k');82end83zData = iZ.*ones(1,cData(2,startIndex));84plot3(hAxes,cData(1,(startIndex+1):end),...85cData(2,(startIndex+1):end),zData,'k');86pause(.1), drawnow87end。
matplotlib画动态图以及plt.ion()和plt.ioff()的使用详解
matplotlib画动态图以及plt.ion()和plt.ioff()的使⽤详解学习python的道路是漫长的,今天⼜遇到⼀个问题,所以想写下来⾃⼰的理解⽅便以后查看。
在使⽤matplotlib的过程中,常常会需要画很多图,但是好像并不能同时展⽰许多图。
这是因为python可视化库matplotlib的显⽰模式默认为阻塞(block)模式。
什么是阻塞模式那?我的理解就是在plt.show()之后,程序会暂停到那⼉,并不会继续执⾏下去。
如果需要继续执⾏程序,就要关闭图⽚。
那如何展⽰动态图或多个窗⼝呢?这就要使⽤plt.ion()这个函数,使matplotlib 的显⽰模式转换为交互(interactive)模式。
即使在脚本中遇到plt.show(),代码还是会继续执⾏。
下⾯这段代码是展⽰两个不同的窗⼝:import matplotlib.pyplot as pltplt.ion() # 打开交互模式# 同时打开两个窗⼝显⽰图⽚plt.figure() #图⽚⼀plt.imshow(i1)plt.figure() #图⽚⼆plt.imshow(i2)# 显⽰前关掉交互模式plt.ioff()plt.show()在plt.show()之前⼀定不要忘了加plt.ioff(),如果不加,界⾯会⼀闪⽽过,并不会停留。
那么动态图像是如何画出来的,请看下⾯这段代码,具体的解释就不在这⾥阐述了,以后有时间再更新:import tensorflow as tfimport numpy as npimport matplotlib.pyplot as pltdef add_layer(inputs,in_size,out_size,activation_funiction=None):Weights = tf.Variable(tf.random_normal([in_size,out_size]))biases = tf.Variable(tf.zeros([1,out_size]) +0.1)Wx_plus_b = tf.matmul(inputs,Weights)+biasesif activation_funiction is None:outputs = Wx_plus_belse:outputs = activation_funiction(Wx_plus_b)return outputsx_data = np.linspace(-1,1,300)[:,np.newaxis]noise = np.random.normal(0,0.05,x_data.shape)y_data = np.square(x_data)-0.5 +noisexs = tf.placeholder(tf.float32,[None,1])ys = tf.placeholder(tf.float32,[None,1])#add hidden layerl1 = add_layer(xs,1,10,activation_funiction=tf.nn.relu)#add output layerprediction = add_layer(l1,10,1,activation_funiction=None)#the error between prediction and real dataloss = tf.reduce_mean(tf.reduce_sum(tf.square(ys - prediction),reduction_indices=[1]))train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)init =tf.initialize_all_variables()with tf.Session() as sess:sess.run(init)fig = plt.figure()ax = fig.add_subplot(1,1,1)ax.scatter(x_data,y_data)plt.ion() #将画图模式改为交互模式for i in range(1000):sess.run(train_step,feed_dict={xs:x_data,ys:y_data})if i%50 ==0:plt.pause(0.1)try:ax.lines.remove(lines[0])except Exception:passprediction_value = sess.run(prediction,feed_dict={xs:x_data})lines = ax.plot(x_data,prediction_value,'r-',lw=5)print(sess.run(loss,feed_dict={xs:x_data,ys:y_data}))plt.ioff()plt.show()上⾯这段代码执⾏之后就会看到⼀条曲线在动态的拟合数据,直到训练结束。
c语言动态爱心源代码
c语言动态爱心源代码C语言动态爱心,是一种用C语言编写的源代码,可以在控制台中动态地显示出一个由字符组成的爱心图案。
这个源代码的实现原理是利用循环和条件语句来控制字符的输出位置和颜色,从而形成一个动态的爱心效果。
在开始编写源代码之前,我们需要引入一些必要的头文件,如stdio.h和windows.h,前者用于输入输出操作,后者用于控制台窗口的一些设置。
然后,我们定义一些常量和变量来控制爱心图案的大小和动态效果。
我们定义一个常量SIZE来表示爱心的大小,可以根据实际需要进行调整。
然后,我们定义两个变量row和col来表示当前输出字符的行和列,以及一个变量delay来控制输出字符的速度。
接下来,我们定义一个二维数组heart来存储爱心图案的字符,并初始化为一个空格。
同时,我们定义一个数组colors来存储输出字符的颜色,用于实现动态效果。
接下来,我们需要编写一个函数drawHeart()来实现爱心图案的绘制。
在该函数中,我们使用两个嵌套循环来遍历二维数组heart,并根据数组的值来输出相应的字符和颜色。
具体的实现逻辑如下:1. 首先,我们使用两个循环来遍历二维数组heart的每个元素。
外层循环控制行数,内层循环控制列数。
2. 在每次循环开始时,我们使用条件语句来判断当前字符的位置是否在爱心的范围内。
如果是,则输出字符,并设置相应的颜色;否则,输出空格。
3. 在输出完一行字符后,我们使用延时函数Sleep()来控制输出的速度,可以根据实际需要进行调整。
4. 在绘制完整个爱心图案后,我们使用循环来清空控制台窗口的内容,以便下次重新输出。
我们在主函数main()中调用drawHeart()函数来实现动态爱心的效果。
在调用函数之前,我们可以先清空控制台窗口的内容,并设置输出字符的颜色。
整个源代码的实现逻辑比较简单,但是通过循环和条件语句的灵活运用,可以实现一个生动、动态的爱心图案。
这个源代码不仅具有一定的实用性,可以用于表达爱心和情感,还能够锻炼程序员的编程能力和逻辑思维能力。
c语言程序3d心形代码
以下是一个使用C 语言编写的绘制3D 心形的示例代码:```c#include <stdio.h>#include <math.h>#define PI 3.14159265void printHeart(int size) {int row, col, r;double x, y, distance;for (row = 0; row <= 2 * size; row++) {for (col = 0; col <= 2 * size; col++) {x = (col - size) * 1.0 / size;y = (size - row) * 1.0 / size;distance = sqrt(x * x + y * y);if (distance <= 1.0) {if (distance > 0.9) {printf("*");} else {if (x <= 0.0) {if (y >= 0.0 && y <= 0.5 * sqrt(1 - x * x)) {printf("*");} else if (y < 0.0 && y >= -1.2 * pow(1 - x * x, 1.0 / 3.0)) {printf("*");} else {printf(" ");}} else {if (y >= 0.0 && y <= sqrt(1 - x * x)) {printf("*");} else if (y < 0.0 && y >= -1.2 * pow(1 - x * x, 1.0 / 3.0)) {printf("*");} else {printf(" ");}}}} else {printf(" ");}}printf("\n");}}int main() {int size;printf("Enter the size of the heart (1-10): ");scanf("%d", &size);if (size < 1 || size > 10) {printf("Invalid size! Please enter a value between 1 and 10.\n");return 1;}printHeart(size);return 0;}```这段代码通过在一个二维坐标系中绘制心形图案。
Matlab绘图基础——其他三维图形(绘制填充的五角星)
Matlab绘图基础——其他三维图形(绘制填充的五⾓星)其他三维图形%绘制魔⽅阵的三维条形图subplot(2,2,1);bar3(magic(4));%以三维杆图形式绘制曲线y=2sin(x)subplot(2,2,2);y=2*sin(0:pi/10:2*pi);stem3(y);%已知x=[2347,1827,2043,3025],绘制饼图subplot(2,2,3);pie3([2347,1827,2043,3025]);%⽤随机的顶点坐标值画出2个黄⾊三⾓形subplot(2,2,4);fill3(rand(3,2),rand(3,2),rand(3,2), 'y' );%fill3函数等效于⼆维函数fill,可在三维空间内绘制出_填充多边形_%格式:fill3(x,y,z,c)应⽤⽰例:例⼀:统计灰度图⽚的“灰度频率直⽅图”和“累计直⽅图”A = imread('pout.tif') ; %读取⼀个内置图⽚%%内置图⽚放在……MATLAB\R2010*\toolbox\images\imdataA = A(:)';count0=zeros(1,256); %设置矩阵⼤⼩for x=1:length(A),count0(A(x)+1)=count0(A(x)+1)+1;end%各灰度级像素个数P=count0/length(A); %频率stem(P,'Marker','none'); axis tight; %作图显⽰频率直⽅图Hp=P;for i=2:256,Hp(i)=P(i)+Hp(i-1);end%累计直⽅图stem(Hp,'Marker','none'); axis tight; %作图显⽰例⼆:绘制填充空间五⾓星%%%⽅法⼀t=1:2:11;x = sin(0.4*t*pi); %五⾓星嘛!六⾓星可以除以6y = cos(0.4*t*pi);z=0.5*x+0.3*y; %放置到三维空间中,这是该五⾓星所在的三维平⾯函数fill3(x,y,z,'r')xlabel('x');ylabel('y');zlabel('z');haxes = gca; axis square;box on;set(haxes,'xticklabel','','yticklabel','','zticklabel','') %移除原图坐标轴轴的标注%注意fill是顺时针⽅向的,所以五⾓星闭合后,中间的五边形并没有填充%%地图多边形⽮量化你懂得hold on; %填充五边形t=1:2:11;x=cos(0.4*pi)/cos(0.2*pi)*sin(0.2*t*pi);y=cos(0.4*pi)/cos(0.2*pi)*cos(0.2*t*pi);z=0.5*x+0.3*y;fill3(x,y,z,'r','EdgeColor','r'); %将五边形的边界颜⾊设置为红⾊%%%显⽰五⾓星所在的边界⼀个圆圈t=1:0.1:11;x = cos(0.4*t*pi);y = sin(0.4*t*pi);z=0.5*x+0.3*y;plot3(x,y,z);hold off;%%%⽅法⼆i=1;for ag=0.2*pi:0.2*pi:2.2*piif mod(i,2)==1 %i是奇数,长边,按照长边的计算公式x(i) = sin(ag); %五⾓星嘛!六⾓星可以除以6y(i) = cos(ag);else%i是偶数,短边,按照短边的计算公式x(i)=cos(0.4*pi)/cos(0.2*pi)*sin(ag);y(i)=cos(0.4*pi)/cos(0.2*pi)*cos(ag);endi=i+1;end;clear i ag;z=0.5*x+0.3*y;fill3(x,y,z,'r','EdgeColor','r');xlabel('x');ylabel('y');zlabel('z');haxes = gca; axis square;box on;set(haxes,'xticklabel','','yticklabel','','zticklabel','')。
使用用C++做一颗会跳动的爱心实例代码
使⽤⽤C++做⼀颗会跳动的爱⼼实例代码⽬录前⾔开始总结前⾔⼤家好,本篇⽂章主要讲的是使⽤⽤C++做⼀颗会跳动的爱⼼实例代码开始先来看看效果:程序描述:程序先以较慢的速度画⼀个⼤爱⼼,之后跳动的⼼其实从视觉上看就是⼀⼤⼀⼩两个⼼相互切换,但是要调整⼀下⼤⼩爱⼼变化时的时间间隔。
代码主要是通过设置两个函数,利⽤cls来清屏,重复打印⼤⼼和⼩⼼,并设置颜⾊为红⾊。
详细代码:在这⾥插⼊#include<iostream>#include<cmath>#include<Windows.h>using namespace std;//关键公式(x^2+y^2-1)^3-x^2*y^3=0,⼩于零的时候在⼼形内部,⼤于零的时候在外部void big_heart(){//⼤爱⼼的打印,⼀⾏⼀⾏打印爱⼼double x_1,y_1,m_1,n_1;for(y_1=1.5;y_1>-1.5;y_1-=0.1){ //⼼型的最⼤长度for(x_1=-1.5;x_1<=1.5;x_1+=0.05){//⼼型的最⼤宽度m_1=x_1*x_1+y_1*y_1-1;n_1=pow(m_1,3)-pow(x_1,2)*pow(y_1,3);n_1<0? cout<<'x': cout<<' ';}Sleep(100);cout<<endl;}}void big_heart_2(){ //⼤爱⼼的打印,迅速的完成爱⼼的打印double x_1,y_1,m_1,n_1;for(y_1=1.5;y_1>-1.5;y_1-=0.1){ //⼼型的最⼤长度for(x_1=-1.5;x_1<=1.5;x_1+=0.05){//⼼型的最⼤宽度m_1=x_1*x_1+y_1*y_1-1;n_1=pow(m_1,3)-pow(x_1,2)*pow(y_1,3);n_1<0? cout<<'x': cout<<' ';}cout<<endl;}}void small_heart(){ //⼩爱⼼的打印double x,y,m,n;for(y=3.0;y>-3.0;y-=0.2){ //⼼型的最⼤长度for(x=-3.0;x<=3.0;x+=0.1){//⼼型的最⼤宽度m=x*x+y*y-1;n=pow(m,3)-pow(x,2)*pow(y,3);n<0? cout<<'x': cout<<' ';}cout<<endl;}}//为了美观和舒适,隐藏打印时的光标HANDLE han = GetStdHandle(-11);void hide(){CONSOLE_CURSOR_INFO cursor;cursor.bVisible = 0;cursor.dwSize = 1;SetConsoleCursorInfo(han,&cursor);}int main(){ //主函数⼊⼝hide();system("color C"); //颜⾊调节big_heart();int a=1;while(1){system("cls");if(a%2==0){small_heart();Sleep(400); //控制停顿时间}else{big_heart_2();Sleep(100); //控制停顿时间}a++;}return 0;}代码⽚总结到此这篇关于使⽤⽤C++做⼀颗会跳动的爱⼼实例代码的⽂章就介绍到这了,更多相关C++爱⼼内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。