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. axios中post传参方式

    最近做vue项目,做图片上传的功能,使用get给后台发送数据,后台能收到,使用post给后台发送图片信息的时候,vue axios post请求发送图片base64编码给后台报错HTTP 错误 414 ...

  2. Qt QGraphicsItem要点 积累

    1.在创建QGraphicsItem子类的时候,想要实现自己绘图,一般是重新实现boundingRect()和paint()函数,如果不重新实现shape(),基类的实现将会退而使用 bounding ...

  3. 【题解】Luogu P5313 僕たちはひとつの光([Ynoi2012]D2T2)

    原题传送门 lovelive好评 比赛时只拿到了60pts,还是自己太菜了 这题的思想实际有点像Luogu P3674 小清新人渣的本愿与Luogu P5071 [Ynoi2015]此时此刻的光辉 这 ...

  4. 面向复杂应用,Node.js中的IoC容器 -- Rockerjs/core

    Rockerjs Core 项目地址 项目主页 基于 TypeScript 和注解的轻量级IoC容器,提供了依赖注入.面向切面编程及异常处理等功能.Rockerjs Core可在任意工程中引入,是一个 ...

  5. SQL Server2017还原数据库时指定mdf文件及日志文件的名称

    由于需要还原同一个数据库的不同备份到不同数据库中,可是在还原的时候,可是在指定目标数据库时,填写不同的数据库名称,在SQL Server Data文件夹中生成的.mdf文件还是同一个,如图,虽然是很简 ...

  6. ThreadLocal的意义和实现

    可以想像,如果一个对象的可变的变量被多个线程访问时,必然是不安全的. 在单线程应用可能会维持一个全局的数据库连接,并在程序启动时初始化这个连接对象,从而避免在调用每个方法时都传递一个Connectio ...

  7. AI_群组行为

    using System.Collections.Generic; using UnityEngine; public class CrowAI : MonoBehaviour { //当前速度 ; ...

  8. Lintcode470-Tweaked Identical Binary Tree-Easy

    470. Tweaked Identical Binary Tree Check two given binary trees are identical or not. Assuming any n ...

  9. linux 系统下安装多个php版本

    思路: 下载不同的php源码包,解压后安装在不同的目录下,修改php-fpm监听的端口号 php安装配置参数: ./configure --prefix=/usr/local/php71 --exec ...

  10. react native 5.54 出ios版本遇到的坑(应该是在xcode10下才会有的吧)记录。。。。。。 据说5.7已经修复了

    1. config.h找不到 rm -r ~/.rncache/cd node_modules/react-native/third-party/glog-0.3.4/./configure --ho ...