1.玫瑰花绘制
绘制效果

完整代码
- function drawrose
- grid on
- [x,t]=meshgrid((0:24)./24,(0:0.5:575)./575.*20.*pi+4*pi);
- p=(pi/2)*exp(-t./(8*pi));
- change=sin(15*t)/150;
- u=1-(1-mod(3.6*t,2*pi)./pi).^4./2+change;
- y=2*(x.^2-x).^2.*sin(p);
-
- r=u.*(x.*sin(p)+y.*cos(p));
- h=u.*(x.*cos(p)-y.*sin(p));
-
- map=[0.9176 0.9412 1.0000
- 0.9094 0.9341 0.9992
- 0.9011 0.9271 0.9984
- 0.8929 0.9200 0.9977
- 0.8847 0.9130 0.9969
- 0.8764 0.9059 0.9961
- 0.8682 0.8988 0.9953
- 0.8600 0.8918 0.9945
- 0.8518 0.8847 0.9938
- 0.8435 0.8777 0.9930
- 0.8353 0.8706 0.9922
- 0.8337 0.8698 0.9910
- 0.8322 0.8690 0.9898
- 0.8306 0.8682 0.9887
- 0.8290 0.8674 0.9875
- 0.8275 0.8667 0.9863
- 0.8259 0.8659 0.9851
- 0.8243 0.8651 0.9839
- 0.8227 0.8643 0.9828
- 0.8212 0.8635 0.9816
- 0.8196 0.8627 0.9804
- 0.8078 0.8521 0.9765
- 0.7961 0.8415 0.9726
- 0.7843 0.8310 0.9686
- 0.7726 0.8204 0.9647
- 0.7608 0.8098 0.9608
- 0.7490 0.7992 0.9569
- 0.7373 0.7886 0.9530
- 0.7255 0.7781 0.9490
- 0.7138 0.7675 0.9451
- 0.7020 0.7569 0.9412
- 0.6836 0.7400 0.9396
- 0.6651 0.7232 0.9381
- 0.6467 0.7063 0.9365
- 0.6282 0.6894 0.9349
- 0.6098 0.6725 0.9334
- 0.5914 0.6557 0.9318
- 0.5729 0.6388 0.9302
- 0.5545 0.6219 0.9286
- 0.5360 0.6051 0.9271
- 0.5176 0.5882 0.9255
- 0.5027 0.5776 0.9271
- 0.4878 0.5670 0.9286
- 0.4729 0.5565 0.9302
- 0.4580 0.5459 0.9318
- 0.4431 0.5353 0.9334
- 0.4282 0.5247 0.9349
- 0.4133 0.5141 0.9365
- 0.3984 0.5036 0.9381
- 0.3835 0.4930 0.9396
- 0.3686 0.4824 0.9412
- 0.3623 0.4742 0.9404
- 0.3561 0.4659 0.9396
- 0.3498 0.4577 0.9388
- 0.3435 0.4494 0.9380
- 0.3372 0.4412 0.9373
- 0.3310 0.4330 0.9365
- 0.3247 0.4247 0.9357
- 0.3184 0.4165 0.9349
- 0.3122 0.4082 0.9341
- 0.3059 0.4000 0.9333
- 0.2981 0.3918 0.9235
- 0.2902 0.3835 0.9137
- 0.2824 0.3753 0.9039
- 0.2745 0.3670 0.8941
- 0.2667 0.3588 0.8843
- 0.2589 0.3506 0.8745
- 0.2510 0.3423 0.8647
- 0.2432 0.3341 0.8549
- 0.2353 0.3258 0.8451
- 0.2275 0.3176 0.8353
- 0.2169 0.3086 0.8165
- 0.2063 0.2996 0.7977
- 0.1957 0.2906 0.7788
- 0.1851 0.2816 0.7600
- 0.1746 0.2726 0.7412
- 0.1640 0.2635 0.7224
- 0.1534 0.2545 0.7036
- 0.1428 0.2455 0.6847
- 0.1322 0.2365 0.6659
- 0.1216 0.2275 0.6471];
- set(gca,'CameraPosition',[2 2 2])
- hold on
- surface(r.*cos(t),r.*sin(t),h,'EdgeAlpha',0.1,...
- 'EdgeColor',[0 0 0],'FaceColor','interp')
- colormap(map)
-
- end
2.月季花绘制
绘制效果


完整代码
- function drawrose2
- grid on
- [x,t]=meshgrid((0:24)./24,(0:0.5:575)./575.*20.*pi-4*pi);
- p=(pi/2)*exp(-t./(8*pi));
- change=sin(20*t)/150;
- u=1-(1-mod(3.3*t,2*pi)./pi).^4./2+change;
- y=2*(x.^2-x).^2.*sin(p);
-
- r=u.*(x.*sin(p)+y.*cos(p)).*1.5;
- h=u.*(x.*cos(p)-y.*sin(p));
-
- map=[0.9176 0.7490 0.3765
- 0.9188 0.7513 0.3879
- 0.9200 0.7537 0.3992
- 0.9211 0.7560 0.4106
- 0.9223 0.7584 0.4220
- 0.9235 0.7608 0.4334
- 0.9247 0.7631 0.4447
- 0.9259 0.7654 0.4561
- 0.9270 0.7678 0.4675
- 0.9282 0.7702 0.4788
- 0.9294 0.7725 0.4902
- 0.9298 0.7698 0.5008
- 0.9302 0.7670 0.5114
- 0.9306 0.7643 0.5220
- 0.9310 0.7615 0.5326
- 0.9314 0.7588 0.5432
- 0.9317 0.7561 0.5537
- 0.9321 0.7533 0.5643
- 0.9325 0.7506 0.5749
- 0.9329 0.7478 0.5855
- 0.9333 0.7451 0.5961
- 0.9290 0.7404 0.5894
- 0.9247 0.7357 0.5828
- 0.9204 0.7310 0.5761
- 0.9161 0.7263 0.5694
- 0.9118 0.7215 0.5627
- 0.9074 0.7168 0.5561
- 0.9031 0.7121 0.5494
- 0.8988 0.7074 0.5427
- 0.8945 0.7027 0.5361
- 0.8902 0.6980 0.5294
- 0.8890 0.6976 0.5388
- 0.8878 0.6972 0.5482
- 0.8867 0.6968 0.5576
- 0.8855 0.6964 0.5670
- 0.8843 0.6961 0.5765
- 0.8831 0.6957 0.5859
- 0.8819 0.6953 0.5953
- 0.8808 0.6949 0.6047
- 0.8796 0.6945 0.6141
- 0.8784 0.6941 0.6235
- 0.8827 0.6988 0.6364
- 0.8870 0.7035 0.6494
- 0.8914 0.7082 0.6623
- 0.8957 0.7129 0.6753
- 0.9000 0.7177 0.6882
- 0.9043 0.7224 0.7011
- 0.9086 0.7271 0.7141
- 0.9130 0.7318 0.7270
- 0.9173 0.7365 0.7400
- 0.9216 0.7412 0.7529
- 0.9153 0.7275 0.7545
- 0.9090 0.7137 0.7560
- 0.9028 0.7000 0.7576
- 0.8965 0.6863 0.7592
- 0.8902 0.6725 0.7608
- 0.8839 0.6588 0.7623
- 0.8776 0.6451 0.7639
- 0.8714 0.6314 0.7655
- 0.8651 0.6176 0.7670
- 0.8588 0.6039 0.7686
- 0.8580 0.5906 0.7557
- 0.8572 0.5772 0.7427
- 0.8565 0.5639 0.7298
- 0.8557 0.5506 0.7168
- 0.8549 0.5373 0.7039
- 0.8541 0.5239 0.6910
- 0.8533 0.5106 0.6780
- 0.8526 0.4973 0.6651
- 0.8518 0.4839 0.6521
- 0.8510 0.4706 0.6392
- 0.8420 0.4447 0.6110
- 0.8330 0.4188 0.5827
- 0.8239 0.3930 0.5545
- 0.8149 0.3671 0.5263
- 0.8059 0.3412 0.4980
- 0.7969 0.3153 0.4698
- 0.7879 0.2894 0.4416
- 0.7788 0.2636 0.4134
- 0.7698 0.2377 0.3851
- 0.7608 0.2118 0.3569];
- set(gca,'CameraPosition',[2 2 2])
- hold on
- surface(r.*cos(t),r.*sin(t),h,'EdgeAlpha',0.1,...
- 'EdgeColor',[0.5 0.5 0.5],'FaceColor','interp')
- colormap(map)
-
- end
3.玫瑰配色
代码中变量map的数值可改变以绘制不同颜色玫瑰,这里提供一部分自己取的颜色数据。
颜色展示
c1

c2

c3

c4

c5

c6

c7

颜色数据自取
4.旋转版本

改动很小,就是最后一小段稍有变动
- function drawrose2
- grid on
- [x,t]=meshgrid((0:24)./24,(0:0.5:575)./575.*20.*pi-4*pi);
- p=(pi/2)*exp(-t./(8*pi));
- change=sin(20*t)/150;
- u=1-(1-mod(3.3*t,2*pi)./pi).^4./2+change;
- y=2*(x.^2-x).^2.*sin(p);
-
- r=u.*(x.*sin(p)+y.*cos(p)).*1.5;
- h=u.*(x.*cos(p)-y.*sin(p));
-
- map=[0.9176 0.7490 0.3765
- 0.9188 0.7513 0.3879
- 0.9200 0.7537 0.3992
- 0.9211 0.7560 0.4106
- 0.9223 0.7584 0.4220
- 0.9235 0.7608 0.4334
- 0.9247 0.7631 0.4447
- 0.9259 0.7654 0.4561
- 0.9270 0.7678 0.4675
- 0.9282 0.7702 0.4788
- 0.9294 0.7725 0.4902
- 0.9298 0.7698 0.5008
- 0.9302 0.7670 0.5114
- 0.9306 0.7643 0.5220
- 0.9310 0.7615 0.5326
- 0.9314 0.7588 0.5432
- 0.9317 0.7561 0.5537
- 0.9321 0.7533 0.5643
- 0.9325 0.7506 0.5749
- 0.9329 0.7478 0.5855
- 0.9333 0.7451 0.5961
- 0.9290 0.7404 0.5894
- 0.9247 0.7357 0.5828
- 0.9204 0.7310 0.5761
- 0.9161 0.7263 0.5694
- 0.9118 0.7215 0.5627
- 0.9074 0.7168 0.5561
- 0.9031 0.7121 0.5494
- 0.8988 0.7074 0.5427
- 0.8945 0.7027 0.5361
- 0.8902 0.6980 0.5294
- 0.8890 0.6976 0.5388
- 0.8878 0.6972 0.5482
- 0.8867 0.6968 0.5576
- 0.8855 0.6964 0.5670
- 0.8843 0.6961 0.5765
- 0.8831 0.6957 0.5859
- 0.8819 0.6953 0.5953
- 0.8808 0.6949 0.6047
- 0.8796 0.6945 0.6141
- 0.8784 0.6941 0.6235
- 0.8827 0.6988 0.6364
- 0.8870 0.7035 0.6494
- 0.8914 0.7082 0.6623
- 0.8957 0.7129 0.6753
- 0.9000 0.7177 0.6882
- 0.9043 0.7224 0.7011
- 0.9086 0.7271 0.7141
- 0.9130 0.7318 0.7270
- 0.9173 0.7365 0.7400
- 0.9216 0.7412 0.7529
- 0.9153 0.7275 0.7545
- 0.9090 0.7137 0.7560
- 0.9028 0.7000 0.7576
- 0.8965 0.6863 0.7592
- 0.8902 0.6725 0.7608
- 0.8839 0.6588 0.7623
- 0.8776 0.6451 0.7639
- 0.8714 0.6314 0.7655
- 0.8651 0.6176 0.7670
- 0.8588 0.6039 0.7686
- 0.8580 0.5906 0.7557
- 0.8572 0.5772 0.7427
- 0.8565 0.5639 0.7298
- 0.8557 0.5506 0.7168
- 0.8549 0.5373 0.7039
- 0.8541 0.5239 0.6910
- 0.8533 0.5106 0.6780
- 0.8526 0.4973 0.6651
- 0.8518 0.4839 0.6521
- 0.8510 0.4706 0.6392
- 0.8420 0.4447 0.6110
- 0.8330 0.4188 0.5827
- 0.8239 0.3930 0.5545
- 0.8149 0.3671 0.5263
- 0.8059 0.3412 0.4980
- 0.7969 0.3153 0.4698
- 0.7879 0.2894 0.4416
- 0.7788 0.2636 0.4134
- 0.7698 0.2377 0.3851
- 0.7608 0.2118 0.3569];
- set(gca,'CameraPosition',[2 2 2])
- hold on
- Xset=r.*cos(t);Yset=r.*sin(t);
- sf=surface(Xset,Yset,h,'EdgeAlpha',0.1,...
- 'EdgeColor',[0.5 0.5 0.5],'FaceColor','interp');
- colormap(map)
-
-
- theta=0;
- while 1
- theta=theta+0.02;
- set(sf,'XData',Xset.*cos(theta)-Yset.*sin(theta),...
- 'YData',Xset.*sin(theta)+Yset.*cos(theta))
- pause(0.01)
- end
-
-
- end
到此这篇关于详解Matlab绘制3D玫瑰花的方法(内附旋转版本)的文章就介绍到这了,更多相关Matlab绘制玫瑰花内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!