by 骁君

椭圆形活动桌面设计(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}]

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

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

原文发布于微信公众号 - WOLFRAM(WolframChina)

原文发表时间:2014-11-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏逸鹏说道

逆天通用水印扩展篇~新增剪贴板系列的功能和手动配置,卸除原基础不常用的功能

常用技能:http://www.cnblogs.com/dunitian/p/4822808.html#skill 逆天博客:http://dnt.dkil.n...

291100
来自专栏xingoo, 一个梦想做发明家的程序员

MFC 随机矩形

问题描述:   简单地使用随即的尺寸和颜色不停的绘制一系列的图像。 一种古老的方式:   设置一个向窗口函数发送WM_TIMER消息的windows计时器。  ...

21650
来自专栏菩提树下的杨过

ExtJs学习笔记(4)_EditorGridPanel(可编辑的网格控件)

这一节,我们将看到ExtJs功能强大的可编辑网格控件,几乎与VS.Net的GridView功能一样了,但是ExtJs的可是纯JS的UI 一.静态示例(改自Ext...

73250
来自专栏ASP.NET MVC5 后台权限管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统(53)-工作流设计-我的批阅

前言:由于工作原因工作流一直没时间更新,虽然没有更新,但是批阅和申请差不多,改变一下数据的状态字段就行,有几个园友已经率先完成了 说句实话,一个工作流用文章表达...

369110
来自专栏WOLFRAM

Mathematica带您一起迎接五一

19640
来自专栏菩提树下的杨过

Silverlight:利用异步加载Xap实现自定义loading效果

关键点: 1.利用WebClient的DownloadProgressChanged事件更新下载进度 2.下载完成后,分析Xap包的程序集Assembly信息 ...

226100
来自专栏机器学习从入门到成神

Spring与MyBatis的整合

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/articl...

2.2K20
来自专栏岑玉海

Hbase 学习(二)补充 自定义filter

本来这个内容是不单独讲的,但是因为上一个页面太大,导致Live Writer死机了,不能继续编辑了,所以就放弃了 这里要讲的是自定义filter,从Filt...

37550
来自专栏菩提树下的杨过

ExtJs+WCF+LINQ实现分页Grid

上篇文章《用ExtJs+Linq+Wcf打造简单grid 》,这个网格控件不带分页,本文在上文的基础上添加分页功能,文中会着重介绍如何在用LINQ返回分页数据,...

36670
来自专栏hotqin888的专栏

MeritMS+jQuery.Gantt价值管理系统增加项目进度展示

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/det...

31910

扫码关注云+社区

领取腾讯云代金券