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

by 骁君

作者头像
WolframChina
发布2018-05-31 16:34:32
4210
发布2018-05-31 16:34:32
举报
文章被收录于专栏:WOLFRAMWOLFRAM

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

by:骁君

代码:

R = Sqrt[25^2 + 2.5^2]; data = Join[{2.5}, Table[Sqrt[R^2 - (i*2.5)^2] - Sqrt[R^2 - ((i + 1)*2.5)^2], {i, 9, 0, -1}]]; y = Accumulate[data]; x = Range[-25, 25, 2.5]; y = Join[y, Rest@Reverse[y]]; len = (120 - 2 y)/2; bianyuan = Join[#, {0}] & /@ Transpose[{x, y}]; temp2 = len - len[[1]]/2; f[\[Theta]_] := ( zhong = Join[#, {1/2 Cos[\[Theta]] len[[1]] + 2.5, 0.5*Sin[\[Theta]]*len[[1]]}] & /@ List /@ x; temp1 = MapThread[Norm[#1 - #2] &, {zhong, bianyuan}]; {duandian = bianyuan + MapThread[(#1 - #2)/Norm[#1 - #2] &, {zhong, bianyuan}]*len, zhong}); Animate[ Module[{h1, h2, duandian, zhong}, duandian = First[f[\[Theta]]]; zhong = Last[f[\[Theta]]]; h1 = Interpolation[ Transpose[{N@Range[0, 1, 1/(Length[duandian] - 1)], duandian}]]; h2 = Interpolation[ Transpose[{N@ Range[0, 1, 1/(Length[{#1, -#2, #3} & @@@ duandian] - 1)], {#1, -#2, #3} & @@@ duandian}]]; Show[Graphics3D[ Join[MapThread[ Line[{#1, #2}] &, {Join[#, {0}] & /@ Transpose[{x, y}], Join[#, {0}] & /@ Transpose[{x, -y}]}], MapThread[Line[{#1, #2}] &, {bianyuan, duandian}], MapThread[ Line[{#1, #2}] &, {{#1, -#2, #3} & @@@ bianyuan, {#1, -#2, #3} & @@@ duandian}], {Red, Point[duandian~Join~({#1, -#2, #3} & @@@ duandian)]}, {Red, Thick, Line[{First[zhong], Last[zhong]}]}, {Red, Thick, Line[{First[{#1, -#2, #3} & @@@ zhong], Last[{#1, -#2, #3} & @@@ zhong]}]}]], ParametricPlot3D[{h1[t], h2[t]}, {t, 0, 1}], PlotRange -> {{-70, 70}, {-70, 70}, {-3, 50}}, ViewPoint -> {2.85, -0.8, -1.6}, ViewVertical -> {0, 0, -1}]], {\[Theta], 0, 1.05}]

对骁君的支持表示感谢哦~~~

欢迎继续投稿,不分领域,不限内容,你必须懂的...

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

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

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

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

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