public static method Cos(f:
float):
float;

public static float Cos(float f);

Returns the cosine of angle `f`

in radians.

#pragma strict public class PolyDrawExample extends MonoBehaviour { public var numberOfSides: int; public var polygonRadius: float; public var polygonCenter: Vector2; function Update() { DebugDrawPolygon(polygonCenter, polygonRadius, numberOfSides); } // and radius. function DebugDrawPolygon(center: Vector2, radius: float, numSides: int) { // The corner that is used to start the polygon (parallel to the X axis). var startCorner: Vector2 = new Vector2(radius, 0) + polygonCenter; // The "previous" corner point, initialised to the starting corner. var previousCorner: Vector2 = startCorner; // For each corner after the starting corner... for (var i: int = 1; i < numSides; i++) { // Calculate the angle of the corner in radians. var cornerAngle: float = 2f * Mathf.PI / floatnumSides * i; // Get the X and Y coordinates of the corner point. var currentCorner: Vector2 = new Vector2(Mathf.Cos(cornerAngle) * radius, Mathf.Sin(cornerAngle) * radius) + polygonCenter; // 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); } }

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) + polygonCenter;

// 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) + polygonCenter;

// 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); } }

Did you find this page useful? Please give it a rating: