C#或unity中实现正弦函数

本类用于第一,需要绘制一条正弦曲线的朋友;第二,需要根据正弦曲线控制物体运动的朋友;里面都有注释,代码如下:

unity中使用的代码:

public class Curvy_Sin
{
/// <summary>
/// 周期
/// </summary>
private float lifeTime = ;
/// <summary>
/// 波峰
/// </summary>
private float MaxPos = ;
/// <summary>
/// 波谷
/// </summary>
private float MinPos = ;
/// <summary>
/// 计算时使用的周期,避免周期为小于零的情况
/// </summary>
private float ZQ
{
get
{
if (lifeTime <= )
{
return ;
}
else
{
return lifeTime;
}
}
}
/// <summary>
/// 构造一个正弦曲线
/// </summary>
/// <param name="zhouqi"></param>
/// <param name="minp"></param>
/// <param name="maxp"></param>
public Curvy_Sin(float zhouqi, float minp, float maxp)
{
this.lifeTime = zhouqi;
this.MinPos = minp;
this.MaxPos = maxp;
}
/// <summary>
/// 根据X轴获取对应Y轴的值
/// </summary>
/// <param name="x"></param>
/// <returns></returns>
public float GetZhengXianValue(float x)
{
float innner = ( * (float)Mathf.PI) / ZQ;
float ya = (float)Mathf.Sin(innner * x);
float maall = (MaxPos - MinPos) * 0.5f;
float middle = maall + MinPos;
return (middle + maall * ya);
}
/// <summary>
/// 修改正弦参数
/// </summary>
/// <param name="zhouqi"></param>
/// <param name="minp"></param>
/// <param name="maxp"></param>
public void SetCurvyZhengXian(float zhouqi, float minp, float maxp)
{
this.lifeTime = zhouqi;
this.MinPos = minp;
this.MaxPos = maxp;
}
}
C#中winform或WPF

public class Curvy_Sin
{
/// <summary>
/// 周期
/// </summary>
private float lifeTime = ;
/// <summary>
/// 波峰
/// </summary>
private float MaxPos = ;
/// <summary>
/// 波谷
/// </summary>
private float MinPos = ;
/// <summary>
/// 计算时使用的周期,避免周期为小于零的情况
/// </summary>
private float ZQ
{
get
{
if (lifeTime <= )
{
return ;
}
else
{
return lifeTime;
}
}
}
/// <summary>
/// 构造一个正弦曲线
/// </summary>
/// <param name="zhouqi"></param>
/// <param name="minp"></param>
/// <param name="maxp"></param>
public Curvy_Sin(float zhouqi, float minp, float maxp)
{
this.lifeTime = zhouqi;
this.MinPos = minp;
this.MaxPos = maxp;
}
/// <summary>
/// 根据X轴获取对应Y轴的值
/// </summary>
/// <param name="x"></param>
/// <returns></returns>
public float GetZhengXianValue(float x)
{
float innner = ( * (float)Math .PI) / ZQ;
float ya = (float)Math.Sin(innner * x);
float maall = (MaxPos - MinPos) * 0.5f;
float middle = maall + MinPos;
return (middle + maall * ya);
}
/// <summary>
/// 修改正弦参数
/// </summary>
/// <param name="zhouqi"></param>
/// <param name="minp"></param>
/// <param name="maxp"></param>
public void SetCurvyZhengXian(float zhouqi, float minp, float maxp)
{
this.lifeTime = zhouqi;
this.MinPos = minp;
this.MaxPos = maxp;
}
}

原文:http://www.shiweikeji.club/?p=316

												

C#或unity中实现正弦函数的更多相关文章

  1. Unity中使用Attribute

    Attribute是c#的语言特性 msdn说明如下: The Attribute class associates predefined system information or user-def ...

  2. 在Unity中使用UGUI修改Mesh绘制几何图形

    在商店看到这样一个例子,表示很有兴趣,他们说是用UGUI做的.我想,像这种可以随便变形的图形,我第一个就想到了网格变形. 做法1: 细心的朋友应该会发现,每个UGUI可见元素,都有一个‘Canvas ...

  3. Unity中使用WebView

    Unity中使用WebView @(设计) 需求,最近游戏中需要引入H5直播页面和更新比较频繁的赛事页面,需求包括:加密传参数.和Unity交互,在Unity框架下其实有几种方案: 内置函数Appli ...

  4. Unity中创建二维码

    在网络上发现了一个可以把字符串转换成二维码的dll,但是我们要怎么使用他呢.不废话,直接进入主题. 用到的引用 using UnityEngine;using ZXing;using ZXing.Qr ...

  5. 在Unity中创建可远程加载的.unity3d包

    在一个Unity项目中,发布包本身不一定要包括所有的Asset(译为资产或组件),其它的部分可以单独发布为.unity3d,再由程序从本地/远程加载执行,这部分不在本文讨论范围.虽然Unity并没有直 ...

  6. 【原创翻译】初识Unity中的Compute Shader

    一直以来都想试着自己翻译一些东西,现在发现翻译真的很不容易,如果你直接把作者的原文按照英文的思维翻译过来,你会发现中国人读起来很是别扭,但是如果你想完全利用中国人的语言方式来翻译,又怕自己理解的不到位 ...

  7. 【unity shaders】:Unity中的Shader及其基本框架

    shader和Material的基本关系 Shader(着色器)实际上就是一小段程序,它负责将输入的Mesh(网格)以指定的方式和输入的贴图或者颜色等组合作用,然后输出.绘图单元可以依据这个输出来将图 ...

  8. Unity中各个平台的预编译的运用方式

    1,unity中官方文档的一个操纵关键词   Platform Dependent Compilation 2,常用的预编译关键词    UNITY_EDITOR    编辑器调用.UNITY_STA ...

  9. 解读Unity中的CG编写Shader系列七(不透明度与混合)

    转自http://www.itnose.net/detail/6098539.html 1.不透明度 当我们要将两个半透的纹理贴图到一个材质球上的时候就遇到混合的问题,由于前面的知识我们已经知道了片段 ...

随机推荐

  1. fastjson的简单使用

    实习初期,开始接触到系统的后台日志查询展示到前台,后台将查询到的数据转化成json格式返回前台,发现系统使用的是阿里的fastjson,于是想来了解一下fastjson的使用. 以下使用都是基于这个版 ...

  2. 关于Oracle配置一些需要注意地方(IIS相关)

    说明:多重复,把各种坑走一次,并知道如何不走坑或者把坑填满,然后再复盘重新走一次,另外,你必须比一般人多付出一些,因为你起步慢了,另 外,你白天的效率不算高,精神状态不好,“试用期”就意味着有淘汰的可 ...

  3. vue-自主研发非父子关系组件之间通信的问题

    相信很多人都知道解决组件间通信:vuex,今天的主角不是它. element-ui里解决组件间通信的思路:emitter.js ,但是如果你拿来你会发现它解决的是父子组件之间的通信问题.如果我们通信的 ...

  4. [Python数据挖掘]第2章、Python数据分析简介

    <Python数据分析与挖掘实战>的数据和代码,可从“泰迪杯”竞赛网站(http://www.tipdm.org/tj/661.jhtml)下载获得 1.Python数据结构 2.Nump ...

  5. HTML和CSS怎么用

    首页> 1.HTML和CSS是什么? ·网站和HTML页面 ·简单理解网站 ·一个房子比喻(HTML比喻成房子,CSS为装修) ·页面的整体结构:有树桩标签对嵌套组成 ·页面的组成单元:元素 · ...

  6. js回调函数以及同步与异步

    1. 背景介绍javascript的单线程特性由于javascript语言是一门“单线程”的语言,所以,javascript就像一条流水线,仅仅是一条流水线而已,要么加工,要么包装,不能同时进行多个任 ...

  7. git commit -m 提交的内容换行

    网上说只需要通过单引号来换行,一直没理解,后面终于试出来了.总结一句话就是. . 先输入第一个引号,按Enter即可换行,完成后再补齐后面的引号 // 步骤一: 输入第一行 git commit -m ...

  8. druid 连接池加密算法

    package juint; import com.alibaba.druid.filter.config.ConfigTools; public class DruidTest { public s ...

  9. 将python中的一个float变量转成内存的4个字节值

    #coding=utf- from struct import pack,unpack byte=pack('f',1.5) print(byte) print([i for i in byte]) ...

  10. String、StringBuilder和StringBuffer的区别

    1         String.StringBuilder和StringBuffer的区别 String.StringBuilder.StringBuffer都可以用来保存字符串.如果是使用次数比较 ...