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

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

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

 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在一定的区间范围内取值,就可以做出各种各样的图案。

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

 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);
}

进而使得程序大体完成。

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

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

以下是效果图:

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

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

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

  2. python画三维立体图-如何在论文中画出漂亮的插图?

    ----2020.08.07增---- 看到评论区有人说"没代码没教程所以没帮助"-- 好吧,我寻思链接.参考资料都在回答中给出来了呀(可能不够明显?) 于是,重新整理.注释了一下 ...

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

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

  4. 学术大咖教你一个轻松在论文中画出漂亮插图的方法

    在撰写论文的过程中,一张精美的论文配图是你的加分项.俗话说:"好马配好鞍",一张规范的高质量配图也是发表高水平论文的必备条件,使用得当的话一定能让你的论文如虎添翼.当我们仔细分析那 ...

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

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

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

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

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

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

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

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

  9. 如何画出漂亮的气象(实时流量)图

    公司的流量监控一直用PRTG,显示外网出口流量曲线,当线路越来越多时,看着很乱.于是就有了本文.Weathermap是cacti中大家最用的一个插件之一,用它可以画出漂亮的网络拓扑图!本人水平有限,尤 ...

最新文章

  1. 握手失败_拜托了,看完这篇别再问我什么是TCP三次握手和四次挥手
  2. centos 7 ldap php7,centOS更新php7
  3. 24.volatile关键字的作用、volatile原理、可见性、内存屏障、volatile性能、transient
  4. CTF 这个看起来有点简单
  5. 透彻!博士生成长需要经历的7道门
  6. android代码重启设备,Android设备重启(reboot)---Android studio
  7. 第8章 面向对象高级编程与网络编程
  8. KbmMW 4.30.00 发布
  9. 2013-1-30 六级词汇造句
  10. 计算机如何共享桌面,怎么将自己的台式电脑屏幕与多人共享
  11. 北京54坐标系和1980西安坐标系转换
  12. .NET Core 如何验证信用卡卡号
  13. 重装系统进入PE的快捷键大全
  14. wsgw_android,衍宏2015最美经纪人 投票查看
  15. vue——实现组织架构图(vue-org-tree)——技能提升
  16. Java----映射 map
  17. 多肉商店html网页代码,[转载]国外多肉植物及种子购买网站(转载)
  18. Storyboard 解析
  19. 你要相信没有到不了的明天
  20. matlab胞元数组

热门文章

  1. python参数化3d_3D参数化建模器freecad中文版
  2. 网络——路由进阶与安全
  3. 小甲鱼老师《带你学C带你飞》的后续课程补充
  4. VPN入门教程:基本概念、使用方法及思科模拟器实践
  5. 算法分析与设计第五章作业
  6. 人生忠告:给男人和女人(ZT)
  7. python中常用英语口语_常用英语口语100句(超实用)_
  8. 用HBuilderX开发小程序的一些问题
  9. JDG人脸识别课堂管理系统全栈开发流程报告-软件工程实践报告
  10. UNIPRO NL协议详解