Unity3D 绘制扇形/环形
using UnityEngine;
using System.Collections;
using System.Collections.Generic; public class Cone : MonoBehaviour { public float anglefov = ;
public int quality = ;
public int[] triangles;
public Vector2[] uvs;
public Vector3[] vertices;
public Vector3[] normals; public float dist_min = 0.0f;
public float dist_max = 1f; public MeshFilter meshFilter; // Use this for initialization
void Awake () {
triangles = new int[quality * * ];
vertices = new Vector3[quality * + ];
uvs = new Vector2[vertices.Length];
normals = new Vector3[vertices.Length]; meshFilter = GetComponent<MeshFilter>();
} // Update is called once per frame
void Update () { meshFilter.mesh.Clear(); Vector3 pos = Vector3.zero;//transform.position;
float angle_lookat = transform.eulerAngles.y;
float angle_fov = anglefov; float angle_start = angle_lookat - angle_fov;
float angle_end = angle_lookat + angle_fov;
float angle_delta = (angle_end - angle_start) / quality; float angle_curr = angle_end; for (int i = ; i < quality + ; i++)
{
Vector3 sphere_curr = new Vector3();
sphere_curr.z = Mathf.Cos(Mathf.Deg2Rad * angle_curr);
sphere_curr.x = Mathf.Sin(Mathf.Deg2Rad * angle_curr); Vector3 pos_curr_min = pos + sphere_curr * dist_min;
Vector3 pos_curr_max = pos + sphere_curr * dist_max; vertices[ * i + ] = pos_curr_min;
vertices[ * i + ] = pos_curr_max; uvs[ * i + ] = new Vector2((float)(quality-i) / quality, );
uvs[ * i + ] = new Vector2((float)(quality-i) / quality, ); normals[ * i + ] = Vector3.up;
normals[ * i + ] = Vector3.up; angle_curr -= angle_delta;
} for (int i = ; i < quality; i++)
{
// 5---3---1
// | /| /|
// | / | / |
// |/ |/ |
// 4---2---0 int index_min_cur = i * + ;
int index_max_cur = i * + ;
int index_min_next = i * + ;
int index_max_next = i * + ; triangles[ * i + ] = index_min_cur;
triangles[ * i + ] = index_min_next;
triangles[ * i + ] = index_max_cur;
triangles[ * i + ] = index_min_next;
triangles[ * i + ] = index_max_next;
triangles[ * i + ] = index_max_cur; } meshFilter.sharedMesh.vertices = vertices;
meshFilter.sharedMesh.triangles = triangles;
meshFilter.sharedMesh.uv = uvs;
}
}


Unity3D 绘制扇形/环形的更多相关文章
- Unity3D之Mesh(六)绘制扇形、扇面、环形
前言: 绘制了圆,就想到绘制与之相关的几何图形,以便更灵活的掌握Mesh动态创建模型的机制与方法. 一.分析: 首先,结合绘制圆的过程绘制环形: 圆形是由segments个等腰三角形组成的(上一篇中, ...
- 绘制扇形效果线条小Bug解决
绘制线条基本代码: 变量: CPoint m_ptOrigin;//起点坐标 bool m_bTrue;//检查鼠标左键是否按下 CPoint m_ptOldOrigin;//记录上一次绘制终点坐标, ...
- [ActionScript 3.0] 动态绘制扇形实例(拖拽绘制)
package { import flash.display.Shape; import flash.display.Sprite; import flash.events.MouseEvent; / ...
- [ActionScript 3.0] 绘制扇形方法
/** * 绘制扇形 * @param mc 承载扇形的对象 * @param x 圆心角x * @param y 圆心角y * @param r 半径 * @param angle 绘制角度 * @ ...
- IOS-使用CAShapLayer绘制扇形
IOS-使用CAShapLayer绘制扇形 为了增加应用体验感,我们动态绘制扇形或者饼状图效果. 这里我们使用CAShapeLayer,这样就不必再-(void)draw函数内绘制图形 参考代码 -( ...
- html5--5-9 绘制扇形
html5--5-9 绘制扇形 学习要点 综合运用已经学过的知识绘制一个扇形 矩形的绘制方法 rect(x,y,w,h)创建一个矩形 strokeRect(x,y,w,hx,y,w,h) 绘制矩形(无 ...
- Sliverlight实例之 绘制扇形和环形图
一,1道几何题 已知两点坐标确定一条直线,直线上存在一个未知点,起始点与未知点的距离已知 求:未知点坐标 思路,如下: 求AB长度,可以根据两点距离公式 二,写个C#类 定义一个Point类,代表坐标 ...
- AS3绘制扇形算法解析
网上有很多使用AS3画一个扇形的方法,但是却一个都没有解释这个函数是如何运作来画出扇形的,下面浅谈下我对这个函数的理解. 首先上代码,代码来自http://blog.csdn.net/weiming8 ...
- html5 css3 如何绘制扇形任意角度
扇形制作原理,底部一个纯色原形,里面2个相同颜色的半圆,可以是白色,内部半圆按一定角度变化,就可以产生出扇形效果 <html> <head> <meta charset= ...
随机推荐
- 2013年6月 最新Godaddy(持续更新)
关于Godaddy Godaddy 是世界上最大的域名注册商,Godaddy管理的域名超过5000万.同时,Godaddy也是最大的主机服务商,据多家监测机构显示,放置在Godaddy上的网站数量已经 ...
- C#条件运算符(?:)
一.C#条件运算符(?:) 条件运算符(?:),有时也称为三元操作符“?:”.它是根据布尔型表达式的值返回?后面的两个值中的一个.如果条件为True,则计算第一个表达式并以它的计算结果为准:如果条件为 ...
- 关于Star UML
为什么是使用Star UML而不是Visio 2013呢? 以前本人在大学期间使用的Visio 2013来绘制UML的,最近一个星期因为在阅读源码,所以有多学了一门UML绘制工具—Star UML,下 ...
- SQL Server中Table字典数据的查询SQL示例代码
SQL Server中Table字典数据的查询SQL示例代码 前言 在数据库系统原理与设计(第3版)教科书中这样写道: 数据库包含4类数据: 1.用户数据 2.元数据 3.索引 4.应用元数据 其中, ...
- vue学习之路 - 3.基本操作(中)
基本操作(中) 本章节主要介绍:vue的条件渲染.列表渲染,计算属性和侦听器 条件渲染和列表渲染 条件渲染主要使用到了 v-if 指令,列表渲染主要使用了 v-for 指令. 下面介绍 v-if . ...
- v4l2解析
v4l2的学习建议和流程解析: http://www.cnblogs.com/silence-hust/p/4464291.html 补充: 枚举设备所支持的image format: VIDIOC_ ...
- 洛谷P1049装箱问题
一句话刚刚的题会了,这题能不会么. #include<bits/stdc++.h> using namespace std; int main(){ int n,m; cin>> ...
- 数据结构(C语言)分享笔记:数据结构的逻辑层次、存储层次
[1] 严格意义上数据结构的概念 数据结构,一个简单的定义:相互之间存在一种或多种特定关系的数据元素的集合.即:数据结构 = 元素集合 + 元素间关系的集合 . 在讨论数据结构时,可以基于两个不同的层 ...
- [Wolfgang Mauerer] 深入linux 内核架构 第二章 进程管理与调度【未完】
作为Linux开发爱好者,从事linux 开发有三年多时间.做过bsp移植,熟悉u-boot代码执行流程:看过几遍<linux 设备驱动程序开发>,分析过kernel启动流程,写过驱动, ...
- python代码notepad++不变色问题。
原来是文档后缀名是.txt造成的,应该改成.py,疏忽了...