前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >by 落霜枫舞

by 落霜枫舞

作者头像
WolframChina
发布2018-05-31 16:33:49
3430
发布2018-05-31 16:33:49
举报
文章被收录于专栏:WOLFRAM

椭圆形活动桌面设计(2014年全国建模大赛B题)

by:落霜枫舞

代码:

R = 25; h = 50; CurveFunction[x_] := Sqrt[R^2 - (R - x)^2]; Manipulate[ Block[ {rotateAngle := ArcTan[(\[Lambda] (l - CurveFunction[d/2]) Sin[\[Alpha]])/( CurveFunction[d/2] - CurveFunction[(n - 1/2) d] + \[Lambda] (l - CurveFunction[d/2]) Cos[\[Alpha]])]}, Show[ (*画桌面*) Graphics3D[ Table[Cuboid[{-CurveFunction[(n - 1/2) d], (n - 1) d, 0}, {CurveFunction[(n - 1/2) d], n d, 3}], {n, 1, (2 R)/d}], BaseStyle -> {Opacity[0.5], Cyan}], (*画一侧桌腿*) Graphics3D[ Table[Rotate[ Cuboid[{CurveFunction[(n - 1/2) d], (n - 1) d, 0}, {CurveFunction[(n - 1/2) d] + l - CurveFunction[(n - 1/2) d], n d, 3}], If[rotateAngle < 0, \[Pi] + rotateAngle, rotateAngle], {0, 1, 0}, {CurveFunction[(n - 1/2) d], 0, 0}], {n, 1, (2 R)/d}]], (*画另一侧桌腿*) Graphics3D[ Table[Rotate[ Cuboid[{-CurveFunction[(n - 1/2) d], (n - 1) d, 0}, {-(CurveFunction[(n - 1/2) d] + l - CurveFunction[(n - 1/2) d]), n d, 3}], If[rotateAngle < 0, \[Pi] + rotateAngle, rotateAngle], {0, -1, 0}, {-CurveFunction[(n - 1/2) d], 0, 0}], {n, 1, (2 R)/d}]], (*画一侧钢筋*) Graphics3D[{Black, Opacity[1], Cylinder[{{(l - CurveFunction[d/2]) \[Lambda] Cos[\[Alpha]] + CurveFunction[d/2] + (3 Sin[\[Alpha]])/ 2, -2, -((l - CurveFunction[d/2]) \[Lambda] Sin[\[Alpha]] - ( 3 Cos[\[Alpha]])/ 2)}, {(l - CurveFunction[d/2]) \[Lambda] Cos[\[Alpha]] + CurveFunction[d/2] + (3 Sin[\[Alpha]])/2, 2 R + 2, -((l - CurveFunction[d/2]) \[Lambda] Sin[\[Alpha]] - ( 3 Cos[\[Alpha]])/2)}}]}], (*画另一侧钢筋*) Graphics3D[{Black, Opacity[1], Cylinder[{{-((l - CurveFunction[d/2]) \[Lambda] Cos[\[Alpha]] + CurveFunction[d/2] + (3 Sin[\[Alpha]])/ 2), -2, -((l - CurveFunction[d/2]) \[Lambda] Sin[\[Alpha]] - ( 3 Cos[\[Alpha]])/ 2)}, {-((l - CurveFunction[d/2]) \[Lambda] Cos[\[Alpha]] + CurveFunction[d/2] + (3 Sin[\[Alpha]])/2), 2 R + 2, -((l - CurveFunction[d/2]) \[Lambda] Sin[\[Alpha]] - ( 3 Cos[\[Alpha]])/2)}}]}], (*画阴影*)Graphics3D[{EdgeForm[None], Black, Polygon[{{(l - CurveFunction[d/2]) Cos[\[Alpha]] + CurveFunction[d/2] + 3 Sin[\[Alpha]], 0, -h}, {(l - CurveFunction[d/2]) Cos[\[Alpha]] + CurveFunction[d/2] + 3 Sin[\[Alpha]], 2 R, -h}, {-((l - CurveFunction[d/2]) Cos[\[Alpha]] + CurveFunction[d/2] + 3 Sin[\[Alpha]]), 2 R, -h}, {-((l - CurveFunction[d/2]) Cos[\[Alpha]] + CurveFunction[d/2] + 3 Sin[\[Alpha]]), 0, -h}}]}], Boxed -> False ] ], {{\[Alpha], ArcSin[h/(l - CurveFunction[d/2])], "桌腿张角"}, 0, ArcSin[h/(l - CurveFunction[d/2])]}, {{\[Lambda], 0.5, "钢筋位置"}, 0, 1}, {{d, 2.5, "木条宽度"}, 0, 10}, {{l, 60, "桌脚长度"}, h + CurveFunction[d/2], 200}]

谢谢落叶枫舞极快的回应,含蓄又热情的说~~~~

Mma们,继续投稿,不分领域,不限内容,你肯定懂的...

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2014-11-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 WOLFRAM 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档