Объявление
public static float Sin(float f);Параметры
f | Входной угол в радианах. |
Возвращает
float Возвращаемое значение от -1 до +1.
Описание
Возвращает синус угла f
.
Примечание. Если с этой функцией используются очень большие числа, для этого метода существует допустимый диапазон входных значений угла, за пределами которого расчет невозможен. В Windows допустимый диапазон составляет примерно от -9223372036854775295 до 9223372036854775295. Этот диапазон может отличаться на других платформах. Для значений вне допустимого диапазона метод Sin возвращает входное значение, а не создает исключение.
using UnityEngine;
using System.Collections;
public class PolyDrawExample : MonoBehaviour
{
public int numberOfSides;
public float polygonRadius;
public Vector2 polygonCenter;
void Update()
{
DebugDrawPolygon(polygonCenter, polygonRadius, numberOfSides);
}
// Draw a polygon in the XY plane with a specfied position, number of sides
// and radius.
void DebugDrawPolygon(Vector2 center, float radius, int numSides)
{
// The corner that is used to start the polygon (parallel to the X axis).
Vector2 startCorner = new Vector2(radius, 0) + center;
// The "previous" corner point, initialised to the starting corner.
Vector2 previousCorner = startCorner;
// For each corner after the starting corner...
for (int i = 1; i < numSides; i++)
{
// Calculate the angle of the corner in radians.
float cornerAngle = 2f * Mathf.PI / (float)numSides * i;
// Get the X and Y coordinates of the corner point.
Vector2 currentCorner = new Vector2(Mathf.Cos(cornerAngle) * radius, Mathf.Sin(cornerAngle) * radius) + center;
// Draw a side of the polygon by connecting the current corner to the previous one.
Debug.DrawLine(currentCorner, previousCorner);
// Having used the current corner, it now becomes the previous corner.
previousCorner = currentCorner;
}
// Draw the final side by connecting the last corner to the starting corner.
Debug.DrawLine(startCorner, previousCorner);
}
}