• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

如何用数学软件画一个“圣诞树”?

python 搞代码 4年前 (2022-01-09) 27次浏览 已收录 0个评论
文章目录[隐藏]

可以是字符的,也可以是图形的

相关问题如何用C语言画一个“圣诞树”? – 编程

回复内容:

我只是搬运codegolf.stackexchange.com上的答案,原作者是Silvia (@Silvia ),用的是Mathematica。

<code class="language-text">PD = .5;s[t_, f_] := t^.6 - fdt[cl_, ps_, sg_, hf_, dp_, f_, flag_] :=    Module[{sv, basePt},           {PointSize[ps],            sv = s[t, f];            Hue[cl (1 + Sin[.02 t])/2, 1, .3 + sg .3 Sin[hf sv]],            basePt = {-sg s[t, f] Sin[sv], -sg s[t, f] Cos[sv], dp + sv};            Point[basePt],           If[flag,              {Hue[cl (1 + Sin[.1 t])/2, 1, .6 + sg .4 Sin[hf sv]], PointSize[RandomReal[.01]],               Point[basePt + 1/2 RotationTransform[20 sv, {-Cos[sv], Sin[sv], 0}][{Sin[sv], Cos[sv], 0}]]},              {}]          }]frames = ParallelTable[                       Graphics3D[Table[{                                         dt[1, .01, -1, 1, 0, f, True], dt[.45, .01, 1, 1, 0, f, True],                                         dt[1, .005, -1, 4, .2, f, False], dt[.45, .005, 1, 4, .2, f, False]},                                        {t, 0, 200, PD}],                                  ViewPoint -> Left, BoxRatios -> {1, 1, 1.3},                                   ViewVertical -> {0, 0, -1},                                  ViewCenter -> {{0.5, 0.5, 0.5}, {0.5, 0.55}}, Boxed -> False,                                  PlotRange -> {{-20, 20}, {-20, 20}, {0, 20}}, Background -> Black],                       {f, 0, 1, .01}];Export["tree.gif", frames]</code>

Mathematica版本:
打开一个notebook,然后长按CTRL+/,效果如下:
像不像一棵圣诞树呢?像不像一棵圣诞树呢?这里有用SAS画的圣诞树,翻译成了Mathematica版的

<code class="language-text">Clear["`*"];ifs[prob_,A_,init_,max_]:=FoldList[#2.{#[[1]],#[[2]],1}&,init,RandomChoice[prob->A,max]];L={{{0.03,0},{0,0.1}},{{0.85,0},{0,0.85}},{{0.8,0},{0,0.8}},{{0.2,-0.08},{0.15,0.22}},{{-0.2,0.08},{0.15,0.22}},{{0.25,-0.1},{0.12,0.25}},{{-0.2,0.1},{0.12,0.2}}};B=Map[List,{{0,0},{0,1.5},{0,1.5},{0,0.85},{0,0.85},{0,0.3},{0,0.4}},{2}];{A,prob,init,max}={N@Join[L,B,3],{2,60,10,7,7,7,7}/100.,{0.,2.},10^5};pts=ifs[prob,A,init,max];//AbsoluteTimingGraphics[{{Darker@Green,PointSize@Tiny,Point@pts},{Hue@Random[],PointSize@Large,Point@#}&/@RandomChoice[pts,200]},AspectRatio->1.5]</code>

去年用R画了圣诞树送给教定量入门的教授,改了一下Wiekvoet: Merry Christmas的代码。
( 今年直接手动涂色送happy spring的卡片了,不是程序媛搞不出酷炫的东西好桑心)Wolfram Mathematica 算数学软件吧?

还有这个:

算不算抖机灵 = =鸡汁的我
MATLAB ,名副其实的数学软件。
参考 参考 File Exchange
by Anselm Ivanovas
====================================
%

<code class="language-matlab"><span class="k">function</span> <span class="nf">christmas</span><span class="c">% Anselm Ivanovas, [email protected]</span><span class="c">%Basically just a nice plot for some christmas fun.</span><span class="c">%3D Plot of a hhristmas tree with some presents and snow</span><span class="c">%% setup</span><span class="n">snow</span><span class="p">=</span><span class="mi">800</span><span class="p">;</span> <span class="c">% number of snow flakes [0 .. 5000]</span><span class="c">%% draw tree</span><span class="n">h</span><span class="p">=</span><span class="mi">0</span><span class="p">:</span><span class="mf">0.2</span><span class="p">:</span><span class="mi">25</span><span class="p">;</span> <span class="c">%vertical grid</span><span class="p">[</span><span class="n">X</span><span class="p">,</span><span class="n">Y</span><span class="p">,</span><span class="n">Z</span><span class="p">]</span> <span class="p">=</span> <span class="n">cylinder</span><span class="p">(</span><span class="n">tree</span><span class="p">(</span><span class="n">h</span><span class="p">));</span> <span class="c">%produce a tree formed cylinder</span><span class="n">Z</span><span class="p">=</span><span class="n">Z</span><span class="o">*</span><span class="mi">25</span><span class="p">;</span> <span class="c">%scale to the right heigth</span><span class="c">%add some diffusion to the surface of the tree to make it look more real</span><span class="n">treeDiffusion</span><span class="p">=</span><span class="nb">rand</span><span class="p">(</span><span class="mi">126</span><span class="p">,</span><span class="mi">21</span><span class="p">)</span><span class="o">-</span><span class="mf">0.5</span><span class="p">;</span><span class="c">%some horizontal diffusion data</span><span class="c">%add diffusion to the grid points</span><span class="k">for</span> <span class="n">cnt1</span><span class="p">=</span><span class="mi">1</span><span class="p">:</span><span class="mi">21</span><span class="k">for</span> <span class="n">cnt2</span><span class="p">=</span><span class="mi">16</span><span class="p">:</span><span class="mi">126</span><span class="c">%starting above the trunk</span><span class="c">%get the angle to always diffuse in direction of the radius</span><span class="nb">angle</span><span class="p">=</span><span class="nb">atan</span><span class="p">(</span><span class="n">Y</span><span class="p">(</span><span class="n">cnt2</span><span class="p">,</span><span class="n">cnt1</span><span class="p">)</span><span class="o">/</span><span class="n">X</span><span class="p">(</span><span class="n">cnt2</span><span class="p">,</span><span class="n">cnt1</span><span class="p">));</span><span class="c">%split the diffusion in the two coordinates, depending on the angle</span><span class="n">X</span><span class="p">(</span><span class="n">cnt2</span><span class="p">,</span><span class="n">cnt1</span><span class="p">)=</span><span class="n">X</span><span class="p">(</span><span class="n">cnt2</span><span class="p">,</span><span class="n">cnt1</span><span class="p">)</span><span class="o">+</span><span class="nb">cos</span><span class="p">(</span><span class="nb">angle</span><span class="p">)</span><span class="o">*</span><span class="n">treeDiffusion</span><span class="p">(</span><span class="n">cnt2</span><span class="p">,</span><span class="n">cnt1</span><span class="p">);</span><span class="n">Y</span><span class="p">(</span><span class="n">cnt2</span><span class="p">,</span><span class="n">cnt1</span><span class="p">)=</span><span class="n">Y</span><span class="p">(</span><span class="n">cnt2</span><span class="p">,</span><span class="n">cnt1</span><span class="p">)</span><span class="o">+</span><span class="nb">sin</span><span class="p">(</span><span class="nb">angle</span><span class="p">)</span><span class="o">*</span><span class="n">treeDiffusion</span><span class="p">(</span><span class="n">cnt2</span><span class="p">,</span><span class="n">cnt1</span><span class="p">);</span><span class="c">%some Vertical diffusion for each point</span><span class="n">Z</span><span class="p">(</span><span class="n">cnt2</span><span class="p">,</span><span class="n">cnt1</span><span class="p">)=</span><span class="n">Z</span><span class="p">(</span><span class="n">cnt2</span><span class="p">,</span><span class="n">cnt1</span><span class="p">)</span><span class="o">+</span><span class="p">(</span><span class="nb">rand</span><span class="o">-</span><span class="mf">0.5</span><span class="p">)</span><span class="o">*</span><span class="mf">0.5</span><span class="p">;</span><span class="k">end</span><span class="k">end</span><span class="c">%draw the tree</span><span class="n">surfl</span><span class="p">(</span><span class="n">X</span><span class="p">,</span><span class="n">Y</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="s">'light'</span><span class="p">)</span><span class="c">%% View and format</span><span class="c">%Use as nice green color map (darker at the bottom, lighter at the top)</span><span class="n">r</span><span class="p">=(</span><span class="mf">0.0430</span><span class="p">:(</span><span class="mf">0.2061</span><span class="o">/</span><span class="mi">50</span><span class="p">):</span><span class="mf">0.2491</span><span class="p">)</span><span class="o">'</span><span class="p">;</span><span class="c">%red component</span><span class="n">g</span><span class="p">=(</span><span class="mf">0.2969</span><span class="p">:(</span><span class="mf">0.4012</span><span class="o">/</span><span class="mi">50</span><span class="p">):</span><span class="mf">0.6981</span><span class="p">)</span><span class="o">'</span><span class="p">;</span><span class="c">%green component</span><span class="n">b</span><span class="p">=(</span><span class="mf">0.0625</span><span class="p">:(</span><span class="mf">0.2696</span><span class="o">/</span><span class="mi">50</span><span class="p">):</span><span class="mf">0.3321</span><span class="p">)</span><span class="o">'</span><span class="p">;</span><span class="c">%blue component</span><span class="n">map</span><span class="p">=[</span><span class="n">r</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">b</span><span class="p">];</span><span class="c">%join in a map</span><span class="k">for</span> <span class="n">cnt</span><span class="p">=</span><span class="mi">1</span><span class="p">:</span><span class="mi">6</span><span class="c">%change the lower part to brown for the trunk</span><span class="n">map</span><span class="p">(</span><span class="n">cnt</span><span class="p">,:)=[</span><span class="mi">77</span><span class="p">,</span><span class="mi">63</span><span class="p">,</span><span class="mi">5</span><span class="p">]</span><span class="o">/</span><span class="mi">265</span><span class="p">;</span><span class="k">end</span><span class="n">colormap</span><span class="p">(</span><span class="n">map</span><span class="p">)</span><span class="c">%set the map</span><span class="n">view</span><span class="p">([</span><span class="o">-</span><span class="mf">37.5</span><span class="p">,</span><span class="mi">4</span><span class="p">])</span><span class="c">%Change the view to see a little more of the Actual 3D tree</span><span class="n">lighting</span> <span class="n">phong</span> <span class="c">%some nice lighting</span><span class="n">shading</span> <span class="n">interp</span> <span class="c">%remove grid and smoothen the surface color</span><span class="n">axis</span> <span class="n">equal</span> <span class="c">%takes care of display in the right proportion</span><span class="n">axis</span><span class="p">([</span><span class="o">-</span><span class="mi">10</span> <span class="mi">10</span> <span class="o">-</span><span class="mi">10</span> <span class="mi">10</span> <span class="mi">0</span> <span class="mi">30</span><span class="p">])</span> <span class="c">%give some more axis space (for the snow later)</span><span class="n">axis</span> <span class="n">off</span> <span class="c">%but don't show axis</span><span class="n">hold</span> <span class="n">on</span> <span class="c">%to draw the rest</span><span class="n">title</span><span class="p">(</span><span class="s">'Merry Christmas 知乎er'</span><span class="p">)</span><span class="c">%self explaining</span><span class="c">%% Presents</span><span class="c">%Draw some presents around the tree (each with random color)</span><span class="n">drawPresent</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="o">-</span><span class="mi">4</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">2</span><span class="p">);</span><span class="n">drawPresent</span><span class="p">(</span><span class="o">-</span><span class="mi">4</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mf">1.5</span><span class="p">);</span><span class="n">drawPresent</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">3</span><span class="p">);</span><span class="n">drawPresent</span><span class="p">(</span><span class="o">-</span><span class="mi">14</span><span class="p">,</span><span class="o">-</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">6</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span><span class="n">drawPresent</span><span class="p">(</span><span class="o">-</span><span class="mi">9</span><span class="p">,</span><span class="o">-</span><span class="mi">10</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">2</span><span class="p">);</span><span class="n">drawPresent</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">3</span><span class="p">);</span><span class="n">drawPresent</span><span class="p">(</span><span class="o">-</span><span class="mi">6</span><span class="p">,</span><span class="o">-</span><span class="mi">13</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">3</span><span class="p">);</span><span class="c">%% Snow</span><span class="c">%create some random 3D coordinates for the snow (amount as in setup above)</span><span class="n">snowX</span><span class="p">=(</span><span class="nb">rand</span><span class="p">(</span><span class="n">snow</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="mi">25</span><span class="o">-</span><span class="mf">12.5</span><span class="p">);</span><span class="n">snowY</span><span class="p">=(</span><span class="nb">rand</span><span class="p">(</span><span class="n">snow</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="mi">25</span><span class="o">-</span><span class="mf">12.5</span><span class="p">);</span><span class="n">snowZ</span><span class="p">=(</span><span class="nb">rand</span><span class="p">(</span><span class="n">snow</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="mi">27</span><span class="p">);</span><span class="c">%Note:Some flakes will end up IN the tree but just can't be seen then</span><span class="n">plot3</span><span class="p">(</span><span class="n">snowX</span><span class="p">,</span><span class="n">snowY</span><span class="p">,</span><span class="n">snowZ</span><span class="p">,</span><span class="s">'w*'</span><span class="p">)</span><span class="c">%plot coordinates as white snow flakes</span><span class="n">hold</span> <span class="n">off</span><span class="c">%Done</span><span class="k">end</span> <span class="c">% of function</span><span class="c">%% ============= private functions</span><span class="k">function</span><span class="w"> </span>r<span class="p">=</span><span class="nf">tree</span><span class="p">(</span>h<span class="p">)</span><span class="c">%Gives a profile for the tree</span><span class="k">for</span> <span class="n">cnt</span><span class="p">=</span><span class="mi">1</span><span class="p">:</span><span class="nb">length</span><span class="p">(</span><span class="n">h</span><span class="p">)</span><span class="k">if</span><span class="p">(</span><span class="n">h</span><span class="p">(</span><span class="n">cnt</span><span class="p">)</span><span class="o">==</span><span class="mi">0</span><span class="p">)</span><span class="c">%no Width at the bottom. Ensures a "closed" trunk</span><span class="n">r</span><span class="p">(</span><span class="n">cnt</span><span class="p">)=</span><span class="mi">0</span><span class="p">;</span><span class="k">end</span><span class="c">%smaller radius for the trunk</span><span class="k">if</span> <span class="p">(</span><span class="n">h</span><span class="p">(</span><span class="n">cnt</span><span class="p">)</span><span class="o">></span><span class="mi">0</span> <span class="o">&&</span> <span class="n">h</span><span class="p">(</span><span class="n">cnt</span><span class="p">)</span><span class="o"><</span><span class="p">=</span><span class="mi">3</span><span class="p">)</span><span class="n">r</span><span class="p">(</span><span class="n">cnt</span><span class="p">)=</span><span class="mf">1.5</span><span class="p">;</span><span class="k">end</span><span class="c">%reduce radius gradually from 8 to 0. Note: will only work with a trunk heigth</span><span class="c">%of 3 and a whole tree heigth of 25. Scale the height of the tree in</span><span class="c">%the "draw tree" section, since the cylinder command will return a 1</span><span class="c">%unit high cylinder anyway</span><span class="k">if</span><span class="p">(</span><span class="n">h</span><span class="p">(</span><span class="n">cnt</span><span class="p">)</span><span class="o">></span><span class="mi">3</span><span class="p">)</span><span class="n">r</span><span class="p">(</span><span class="n">cnt</span><span class="p">)=</span><span class="mi">8</span><span class="o">-</span><span class="p">(</span><span class="n">h</span><span class="p">(</span><span class="n">cnt</span><span class="p">)</span><span class="o">-</span><span class="mi">3</span><span class="p">)</span><span class="o">*</span><span class="mf">0.3636</span><span class="p">;</span><span class="k">end</span><span class="k">end</span><span class="k">end</span> <span class="c">% of function</span><span class="c">%Draws a present with the given coordinate + size in a random color</span><span class="c">%Note:Given coordinates apply to the lower front + left corner of the</span><span class="c">%present (the one closest to the viewer) as seen in the plot</span><span class="k">function</span><span class="w"> </span><span class="nf">drawPresent</span><span class="p">(</span>dx,dy,dz,scalex,scaley,scalez<span class="p">)</span><span class="w"></span><span class="c">%the standard present coordinates</span><span class="n">presentX</span><span class="p">=[</span><span class="mf">0.5</span> <span class="mf">0.5</span> <span class="mf">0.5</span> <span class="mf">0.5</span> <span class="mf">0.5</span><span class="p">;</span> <span class="mi">0</span> <span class="mi">1</span> <span class="mi">1</span> <span class="mi">0</span> <span class="mi">0</span><span class="p">;</span> <span class="mi">0</span> <span class="mi">1</span> <span class="mi">1</span> <span class="mi">0</span> <span class="mi">0</span><span class="p">;</span> <span class="mi">0</span> <span class="mi">1</span> <span class="mi">1</span> <span class="mi">0</span> <span class="mi">0</span><span class="p">;</span> <span class="mf">0.5</span> <span class="mf">0.5</span> <span class="mf">0.5</span> <span class="mf">0.5</span> <span class="mf">0.5</span><span class="p">];</span><span class="n">presentY</span><span class="p">=[</span><span class="mf">0.5</span> <span class="mf">0.5</span> <span class="mf">0.5</span> <span class="mf">0.5</span> <span class="mf">0.5</span><span class="p">;</span> <span class="mi">0</span> <span class="mi">0</span> <span class="mi">1</span> <span class="mi">1</span> <span class="mi">0</span><span class="p">;</span> <span class="mi">0</span> <span class="mi">0</span> <span class="mi">1</span> <span class="mi">1</span> <span class="mi">0</span><span class="p">;</span> <span class="mi">0</span> <span class="mi">0</span> <span class="mi">1</span> <span class="mi">1</span> <span class="mi">0</span><span class="p">;</span> <span class="mf">0.5</span> <span class="mf">0.5</span> <span class="mf">0.5</span> <span class="mf">0.5</span> <span class="mf">0.5</span><span class="p">];</span><span class="n">presentZ</span><span class="p">=[</span><span class="mi">0</span> <span class="mi">0</span> <span class="mi">0</span> <span class="mi">0</span> <span class="mi">0</span><span class="p">;</span> <span class="mi">0</span> <span class="mi">0</span> <span class="mi">0</span> <span class="mi">0</span> <span class="mi">0</span><span class="p">;</span> <span class="mf">0.5</span> <span class="mf">0.5</span> <span class="mf">0.5</span> <span class="mf">0.5</span> <span class="mf">0.5</span><span class="p">;</span> <span class="mi">1</span> <em>本文来源gao.dai.ma.com搞@代*码(网$</em><span class="mi">1</span> <span class="mi">1</span> <span class="mi">1</span> <span class="mi">1</span><span class="p">;</span> <span class="mi">1</span> <span class="mi">1</span> <span class="mi">1</span> <span class="mi">1</span> <span class="mi">1</span><span class="p">];</span><span class="c">%draw some presents with random colors</span><span class="c">%scale present and move it to the right place and get the plot handle</span><span class="n">myHandle</span><span class="p">=</span><span class="n">surf</span><span class="p">((</span><span class="n">presentX</span><span class="o">*</span><span class="n">scalex</span><span class="o">+</span><span class="n">dx</span><span class="p">),(</span><span class="n">presentY</span><span class="o">*</span><span class="n">scaley</span><span class="o">+</span><span class="n">dy</span><span class="p">),</span> <span class="p">(</span><span class="n">presentZ</span><span class="o">*</span><span class="n">scalez</span><span class="o">+</span><span class="n">dz</span><span class="p">));</span><span class="c">%some random color map</span><span class="n">randColorMap</span><span class="p">(:,:,</span><span class="mi">1</span><span class="p">)=</span><span class="nb">repmat</span><span class="p">(</span><span class="nb">rand</span><span class="p">,[</span><span class="mi">5</span><span class="p">,</span><span class="mi">5</span><span class="p">]);</span><span class="c">%r component</span><span class="n">randColorMap</span><span class="p">(:,:,</span><span class="mi">2</span><span class="p">)=</span><span class="nb">repmat</span><span class="p">(</span><span class="nb">rand</span><span class="p">,[</span><span class="mi">5</span><span class="p">,</span><span class="mi">5</span><span class="p">]);</span><span class="c">%g component</span><span class="n">randColorMap</span><span class="p">(:,:,</span><span class="mi">3</span><span class="p">)=</span><span class="nb">repmat</span><span class="p">(</span><span class="nb">rand</span><span class="p">,[</span><span class="mi">5</span><span class="p">,</span><span class="mi">5</span><span class="p">]);</span><span class="c">%b component</span><span class="c">%Assign colormap just to the plot handle object of the present, so the tree</span><span class="c">%does not change color</span><span class="n">set</span><span class="p">(</span><span class="n">myHandle</span><span class="p">,</span><span class="s">'CData'</span><span class="p">,</span><span class="n">randColorMap</span><span class="p">)</span><span class="n">shading</span> <span class="n">interp</span> <span class="c">%Nice shding + without grid</span><span class="k">end</span> <span class="c">% of function</span></code>

Christmas Tree
R语言能画,但是这种比较有什么意义呢…………………………….

<code class="language-rconsole"><span class="go">L <-  matrix(</span><span class="go">    c(0.03,  0,     0  ,  0.1,</span><span class="go">        0.85,  0.00,  0.00, 0.85,</span><span class="go">        0.8,   0.00,  0.00, 0.8,</span><span class="go">        0.2,  -0.08,  0.15, 0.22,</span><span class="go">        -0.2,   0.08,  0.15, 0.22,</span><span class="go">        0.25, -0.1,   0.12, 0.25,</span><span class="go">        -0.2,   0.1,   0.12, 0.2),</span><span class="go">    nrow=4)</span><span class="go"># ... and each row is a translation vector</span><span class="go">B <- matrix(</span><span class="go">    c(0, 0,</span><span class="go">        0, 1.5,</span><span class="go">        0, 1.5,</span><span class="go">        0, 0.85,</span><span class="go">        0, 0.85,</span><span class="go">        0, 0.3,</span><span class="go">        0, 0.4),</span><span class="go">    nrow=2)</span><span class="go">prob = c(0.02, 0.6,.08, 0.07, 0.07, 0.07, 0.07)</span><span class="go"># Iterate the discrete stochastic map </span><span class="go">N = 1e5 #5  #   number of iterations </span><span class="go">x = matrix(NA,nrow=2,ncol=N)</span><span class="go">x[,1] = c(0,2)   # initial point</span><span class="go">k <- sample(1:7,N,prob,replace=TRUE) # values 1-7 </span><span class="go">for (i in 2:N) </span><span class="go">  x[,i] = crossprod(matrix(L[,k[i]],nrow=2),x[,i-1]) + B[,k[i]] # iterate </span><span class="go"># Plot the iteration history </span><span class="go">png('card.png')</span><span class="go">par(bg='darkblue',mar=rep(0,4))    </span><span class="go">plot(x=x[1,],y=x[2,],</span><span class="go">    col=grep('green',colors(),value=TRUE),</span><span class="go">    axes=FALSE,</span><span class="go">    cex=.1,</span><span class="go">    xlab='',</span><span class="go">    ylab='' )#,pch='.')</span><span class="go">bals <- sample(N,20)</span><span class="go">points(x=x[1,bals],y=x[2,bals]-.1,</span><span class="go">    col=c('red','blue','yellow','orange'),</span><span class="go">    cex=2,</span><span class="go">    pch=19</span><span class="go">)</span><span class="go">text(x=-.7,y=8,</span><span class="go">    labels='Merry',</span><span class="go">    adj=c(.5,.5),</span><span class="go">    srt=45,</span><span class="go">    vfont=c('script','plain'),</span><span class="go">    cex=3,</span><span class="go">    col='gold'</span><span class="go">)</span><span class="go">text(x=0.7,y=8,</span><span class="go">    labels='Christmas',</span><span class="go">    adj=c(.5,.5),</span><span class="go">    srt=-45,</span><span class="go">    vfont=c('script','plain'),</span><span class="go">    cex=3,</span><span class="go">    col='gold'</span><span class="go">)</span><span class="go">dev.off()</span></code>

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:如何用数学软件画一个“圣诞树”?

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址