python画圣诞树代码解读_如何用数学软件画一个「圣诞树」?

PD = .5;

s[t_, f_] := t^.6 - f

dt[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]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值