2019独角兽企业重金招聘Python工程师标准>>>

用程序画出一些函数图形,这是一件赏心悦目的事情。

玫瑰函数就是一件完美的艺术模型,简单漂亮,当然还有其他比如:馄饨图案、分形图等等。

今天就介绍玫瑰函数,其他的以后再介绍,先看看玫瑰函数的公式:

x=(a+b)cosθ-acos[(a+b)θ/b];   
y=(a+b)sinθ-asin[(a+b)θ/b];

一个高中生就能看得懂的函数公式,极其简单,X、Y的坐标由3个值来决定,θ在0-360度或者0-720度的之间范围取值,而a,b在一定的区间范围内取值,就可以做出各种各样的图案。

UNITY3D具体的代码是:

for (var i=0; i<numberOfPoints; i++) {theta = i * Mathf.PI / 180;linePoints [i] = new Vector3 ((a + b) * Mathf.Cos(1*theta) -a*Mathf.Cos((a +b) * theta / b), (a +b) * Mathf.Sin (1*theta)-a* Mathf.Sin ((a +b) * theta / b), 1.0);}

上面这段代码就实现了玫图案函数的表达式。

然后通过设置函数物体或者摄像机物体的旋转来获得物体的运动。

var rotateSpeed = 10.0;function Update () {transform.Rotate(Vector3.up * Time.deltaTime * rotateSpeed);
}

a、b的值可以用slider等UI控件来解决。

    btn=gameObject.Find("Canvas/Panel/Button").GetComponent(UI.Button);btn.onClick.AddListener(onClick);sca=gameObject.Find("Canvas/Panel/Slidera").GetComponent(UI.Slider);sca.onValueChanged.AddListener(SliderA);scb=gameObject.Find("Canvas/Panel/Sliderb").GetComponent(UI.Slider);scb.onValueChanged.AddListener(SliderB);scc=gameObject.Find("Canvas/Panel/Sliderc").GetComponent(UI.Slider);scc.onValueChanged.AddListener(SliderC);

相应的回调函数是:

  function Slidera (temp:float){a=  temp/100;LineSetup (true);}function Sliderb (temp:float){b= temp/1000;LineSetup (true);}

下面有用到C的值,这是因为为了更好显示在摄像机中,因为函数画出来的图像可能有大有小,需要通过一个C值来来调节,C值=摄像机到函数的距离,这样就可以调节C值把函数图案完美的显示在手机屏幕中央了,这样就大功告成了。

   function Sliderc (temp:float){var gb= GameObject.Find("Main Camera");gb.transform.position=new Vector3( gb.transform.position.x, gb.transform.position.y, temp);}

进而使得程序大体完成。

其实还可以加上粒子系统、背景图案、颜色、坐标系统等等来控制获得更好的效果。

毕竟是很短的时间内做出来的,以前这个程序写过,但是代码丢了,于是今晚再次完成下。

以下是效果图:

转载于:https://my.oschina.net/u/248241/blog/1941905

unity3d画出漂亮的玫瑰图案函数。相关推荐

  1. 如何在科研论文中画出漂亮的插图?(附代码)

    来源:机器学习实验室 本文约3300字,建议阅读5分钟. 本文给大家推荐几种在论文中画出漂亮的插图的方法. 方法一 强烈推荐 Python 的绘图模块 matplotlib: python plott ...

  2. python plot画图_1. 用Python画出漂亮的图表

    Python 非常简单而又非常强大,它的功能之一就是画出漂亮的图表,实现数据的可视化.在 Matplotlib 帮助下,它能画出多种图表.下面是 Matplotlib 的部分例子. 怎么样?很强大吧! ...

  3. 数据血缘关系图 工具_如何在论文中画出漂亮的插图?用它!丨城市数据派

    [你投稿了没?10万+作者"平台好才是真的好",也许下一个就是你!](点击看详情),是由城市数据派主办的征稿活动,小派在此恭候派友们投稿分享![本期看点]LaTeX是一种非常好用的 ...

  4. 如何在论文中画出漂亮的插图?

    GITHUB, 开源包d3.数据可视化利器.http://ghv.artzub.com/#repo=d3&climit=100&user=mbostock&run 知乎精选: ...

  5. matlab学位论文绘图美化工具_推荐几个超级好用的工具,让你在论文中画出漂亮的插图...

    每次我们看到优秀期刊中的文章,比如<Nature>.<Cell>,我们都会被文章中的插图惊艳到.再瞅瞅我们自己论文中的插图,总觉得比别人low了好几个c层次.一个好看的插图绝对 ...

  6. Python编程,使用turtle画出漂亮的雪花--完整代码绘画实现洁白的雪绒花~~

    Python编程,使用turtle画出漂亮的雪花--完整代码实现洁白的雪绒花~~ Python中turtle库,可以方便的让你实现各种各样的功能.简单易用,有的时候能够创作出,你想像不到的漂亮图案.今 ...

  7. python 论文插图_如何在python论文中画出漂亮的插图?-from知乎

    如何在论文中画出漂亮的插图? 经常看到别人论文中画出各种绚烂的插图,我想知道这些图都是用一些什么样的软件画出来的.比如下面给出的几张,好吧,我承认有的并不那么绚烂,但用什么样的软件比较合适呢?具体答案 ...

  8. matlab 第一类修正贝塞尔函数,零阶贝塞尔函数 在MATLAB中怎样画出零阶修正贝塞尔函数...

    第二类修正贝塞尔函数的零阶和一阶,分别怎样用mat回忆终究只是回忆,它只代表一段过去,一段历史,回忆再美也只是曾经,告别过去,期待未来. 书上说 (0和1都是下标) K0(z), the zeroth ...

  9. python 漂亮的图表_1. 用Python画出漂亮的图表

    Python 非常简单而又非常强大,它的功能之一就是画出漂亮的图表,实现数据的可视化.在 Matplotlib 帮助下,它能画出多种图表.下面是 Matplotlib 的部分例子. 怎么样?很强大吧! ...

最新文章

  1. 太赫兹芯片是什么原理_太赫兹波养生鞋 芯片、鞋垫和材质的详细了解专利技术~太赫兹芯...
  2. Redis 性能问题分析
  3. 青龙羊毛——飞鸽花转省毛毛(搬运)
  4. poj1015 Jury Compromise
  5. openresty+consul动态配置更新(服务变更发现)
  6. Linux 主机超全渗透测试命令汇总
  7. 修改MySql默认编码
  8. log4j2 日志框架小记
  9. 简介如何查看执行计划以及执行计划的准确性
  10. Python self,init,对象属性
  11. 记录PHP错误日志 display_errors与log_errors的区别
  12. 【EF】Entity Framework Core 2.0 特性介绍和使用指南
  13. 搞全闪存阵列的各执一词 宏杉说别吵了,就用我哒
  14. 移位密码及其python实现
  15. 程序员该如何避免掉头发?
  16. jenkins AWS CodeDeploy不停机部署
  17. 图像标注的基础内容介绍
  18. Mac Android studio插件GsonFormat的使用
  19. 破解工具SoftICE与TRW2000操作入门
  20. php mysql 查询中文乱码_PHP查询MySQL返回中文乱码问题!!!

热门文章

  1. 总结10个Python赚钱的接单平台 兼职月入5000+
  2. STM32F103在STM32CubeMX下的应用
  3. 后N天C语言,c语言计算一个日期的下一天后N天后的日期
  4. C# 匿名方法和拉姆达表达式
  5. 编译Android下可用的全平台FFmpeg(包含libx264与libfdk-aac)
  6. 垂钓之王hd_它的专业人士指南,以阻止网络钓鱼
  7. vue遇到的小问题,封装功能
  8. parted扩展磁盘分区(实践篇)
  9. 咏南ISAPI中间件
  10. JavaFX界面跳转