【Unity3d】如何绘制椭圆
2016-06-12 13:14
1161 查看
今天偶然看到一篇关于如何画椭圆的帖子 随即就整理了下
/// <summary>
/// 首先绘制椭圆的公式
/// 椭圆的参数方程x=acosθ,y=bsinθ;
/// </summary>
public Transform trans;
public float w;//椭圆长
public float h; //椭圆高
public int angle = 360;
[Range(0,360)]
public int speed = 0;
private Vector3[] vec;
private int index = 0;
private LineRenderer line;
float x, y;
void Start()
{
vec = new Vector3[angle];
for (int i = 0; i < angle; i++)
{
// Mathf.Deg2Rad 单位角度的弧 相当于 1° 的弧度
x = w * Mathf.Cos(i * Mathf.Deg2Rad);
y = h * Mathf.Sin(i * Mathf.Deg2Rad);
vec [i] = trans.position + new Vector3 (x,0,y);
}
SetLine ();
}
void SetLine()
{
line = gameObject.AddComponent<LineRenderer> ();
//设置线由多少个点构成
line.SetVertexCount (angle);
//绘制点的坐标
line.SetPositions (vec);
}
void Update()
{
trans.position = vec [index];
if ((index += speed) >= vec.Length)
{
index = 0;
}
}
/// <summary>
/// 首先绘制椭圆的公式
/// 椭圆的参数方程x=acosθ,y=bsinθ;
/// </summary>
public Transform trans;
public float w;//椭圆长
public float h; //椭圆高
public int angle = 360;
[Range(0,360)]
public int speed = 0;
private Vector3[] vec;
private int index = 0;
private LineRenderer line;
float x, y;
void Start()
{
vec = new Vector3[angle];
for (int i = 0; i < angle; i++)
{
// Mathf.Deg2Rad 单位角度的弧 相当于 1° 的弧度
x = w * Mathf.Cos(i * Mathf.Deg2Rad);
y = h * Mathf.Sin(i * Mathf.Deg2Rad);
vec [i] = trans.position + new Vector3 (x,0,y);
}
SetLine ();
}
void SetLine()
{
line = gameObject.AddComponent<LineRenderer> ();
//设置线由多少个点构成
line.SetVertexCount (angle);
//绘制点的坐标
line.SetPositions (vec);
}
void Update()
{
trans.position = vec [index];
if ((index += speed) >= vec.Length)
{
index = 0;
}
}
相关文章推荐
- unity知识总结
- 关于游戏对象隐藏和重新显示之前触发的消息。
- 关于unity5鼠标在物体上的检测相关问题
- 【Unity】Could not get texture importer UnityEditor.TrueTypeFontImporter:GenerateEditableFont(String)
- 【Unity技巧】Unity中的优化技术
- Unity Stats 面板介绍
- Unity之快捷键组合
- 我的Unity3D学习日记-04(Transform,Time,Mathf类以及动态在场景中生成Prefab)
- Unity Shader 四 渲染管线
- Gvr SDK for Unity 分析(二)
- Unity3D【新手问题】阴影效果不显示的原因
- Unity社交功能开发——移动端输入法回车事件响应
- 【Unity3D插件】NGUI基础学习笔记
- Unity 小游戏练习(二)
- Unity获取游戏对象详解
- Unity3D性能优化
- Unity3D Sprite(精灵)分割
- Unity3D 中3D刚体组件的力
- 通过改变纹理的UV坐标实现简单的水流效果
- Unity3d碰撞检测中碰撞器与触发器的区别