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. 各种CSS样式设置细线边框

    基础知识回顾 : cellspacing:单元格与单元格之间的边距:cellpadding:单元格内的内容与单元格边沿的边距 简单实用的样式,设置所有的单元格为细线效果 <style type= ...

  2. BZOJ 4195: [Noi2015]程序自动分析 并查集+离散化

    LUOGU 1955BZOJ 4195 题目描述 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足. 考虑一个约束满足问题的简化版本:假设x1,x2,x3...代表程序中出现的变量 ...

  3. STM32按键输入

    下面3个接上拉电阻 WK_UP接上拉电阻 因为用到了PA,PC,PH所以要使能3个模块 STATIC静态变量只会初始化一次 每次调用flag++,不会再初始化为0:起记忆作用. 最关键的是头 件不要忘 ...

  4. 复旦高等代数 I(18级)每周一题

    [问题2018A01]  计算下列 $n+1$ 阶行列式的值: $$|A|=\begin{vmatrix} 0 & 1 & 1 & \cdots & 1 \\ 1 &a ...

  5. Spring boot Spring cloud 框架搭建

    随笔记载几个框架搭建时的坑: 这个是server提供者模块,需要注意的是spring:application:name 接下来是fegin模块,需要主要注意信息已说明,需要特别说明的是RequestM ...

  6. tree与GridView交互

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="OgGridView.asp ...

  7. (转)How Transformers Work --- The Neural Network used by Open AI and DeepMind

    How Transformers Work --- The Neural Network used by Open AI and DeepMind Original English Version l ...

  8. ssm框架中文请求乱码get

    <bean id="utf8Charset" class="java.nio.charset.Charset" factory-method=" ...

  9. anaconda中安装TensorFlow的方法

    作为一个新手党加手残党真的折腾了好久才搞定,记录一下. step1:在anaconda prompt终端中输入 pip3 install -i https://pypi.tuna.tsinghua.e ...

  10. python - xml转excel

    xml转excel,可以用xml.etree.ElementTree去解析xml文件,然后用xlwt写入excel 示例:ConvConfig.xml <Conveyor_Channel_1&g ...