​在Mathematica中使用MeshPrimitives绘制康托尔集合​

在Mathematica中,内置的函数MeshPrimitives,其调用语法为:

MeshPrimitives[mreg,d] 返回网格区域mreg中的d维cell相应的图像素元 
MeshPrimitives[mreg,cellspec] 返回网格区域mreg中的由cellspec指定的图像素元

关于这个函数,可以参考官方文档的基本案例:

使用MeshPrimitives返回1维图像素元即线段之后,然后再把这些素元转化成圆环或者长方形。圆环和长方形的生成语法为:

Annulus[{x,y},{r_inner,r_outer}] 
返回中心在{x,y}内半径为r_inner外半径为r_outer的圆环 Rectangle[{xmin,ymin},{xmax,ymax}]

之后,将线段映射为圆环即可:

Graphics[ MeshPrimitives[ CantorMesh[6], 1] /. {Line[{{x1_}, {x2_}}] :> Annulus[{0.5, 0}, Sort[Abs[{0.5, 0.5} - {x1, x2}]]]} ]

Graphics[ MeshPrimitives[ CantorMesh[3], 1] /. { Line[{{x1_}, {x2_}}] :> Annulus[{-0.01, 0}, Sort[Abs[{-0.01, -0.01} - {x1, x2}]]] (*这里是为了避免半径为0的情况发生*) } ]

运行如下代码

Graphics[ MeshPrimitives[ CantorMesh[4], 1] /. Line[{{x1_}, {x2_}}] :> Rectangle[{x1, 0}, {x2, 1} ] ]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值