好玩的Mathematica编程
2021/5/17 20:55:44
本文主要是介绍好玩的Mathematica编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、复杂多面体
Ry[t_] := {{Cos[t], 0, Sin[t]}, {0, 1, 0}, {-Sin[t], 0, Cos[t]}}; Rz[t_] := {{Cos[t], -Sin[t], 0}, {Sin[t], Cos[t], 0}, {0, 0, 1}}; n = 6; t2 = Pi/5; t1 = t2/2; alpha = ArcCos[-Sqrt[5.0]/5]; dz = Sin[t1]^2 Tan[alpha/2]; z = GoldenRatio Tan[alpha/2]/2 + dz; scale = (Cos[t1] - Sqrt[3.0 (1 - Cos[t2])/2])/(2 Cos[t2] - 1); R = scale Rz[ArcCos[Cos[t1] + dz^2 (scale - 1)^2/(2 scale)]]; verts = {}; verts0 = Table[{Cos[i t2], Sin[i t2], (2 Mod[i, 2] - 1) dz}, {i, 0, 9}]; Do[verts = Join[verts, Map[{0, 0, z} + # &, verts0]]; verts0 = Map[R.# &, verts0], {n + 1}]; faces = Flatten[ Table[10 i + {{j, Mod[j, 10] + 1, j + 10}, {j + 1, j + 10, Mod[j + 10, 20] + 1}}, {i, 0, n - 1}, {j, 1, 10}], 2]; ToPolys[verts_, faces_] := Map[Polygon[verts[[#]]] &, faces]; Show[Graphics3D[{ToPolys[verts, faces], Table[{ToPolys[Map[Rz[t + t2].Ry[Pi - alpha].# &, verts], faces], ToPolys[Map[Rz[t].Ry[alpha].Rz[t2].# &, verts], faces]}, {t, 2 t2, 2 Pi, 2 t2}], ToPolys[Map[Ry[Pi].# &, verts], faces]}]]
欢迎加群:707914447
这篇关于好玩的Mathematica编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24怎么切换 Git 项目的远程仓库地址?-icode9专业技术文章分享
- 2024-12-24怎么更改 Git 远程仓库的名称?-icode9专业技术文章分享
- 2024-12-24更改 Git 本地分支关联的远程分支是什么命令?-icode9专业技术文章分享
- 2024-12-24uniapp 连接之后会被立马断开是什么原因?-icode9专业技术文章分享
- 2024-12-24cdn 路径可以指定规则映射吗?-icode9专业技术文章分享
- 2024-12-24CAP:Serverless?+AI?让应用开发更简单
- 2024-12-23新能源车企如何通过CRM工具优化客户关系管理,增强客户忠诚度与品牌影响力
- 2024-12-23原创tauri2.1+vite6.0+rust+arco客户端os平台系统|tauri2+rust桌面os管理
- 2024-12-23DevExpress 怎么实现右键菜单(Context Menu)显示中文?-icode9专业技术文章分享
- 2024-12-22怎么通过控制台去看我的页面渲染的内容在哪个文件中呢-icode9专业技术文章分享