using System.Collections; using System.Collections.Generic; using UnityEngine; public class Logarithmic : MonoBehaviour { Mesh mesh; public int maxX; public float factor; public float a; // Start is called before the first frame update void Start() { mesh = new Mesh { name = "Logarithmic" }; } // Update is called once per frame void Update() { } public void DrawLogarithmic() { mesh.Clear(); float step = 0.01f; Vector3[] vectors = new Vector3[100 * maxX]; int k = 0; float down = Mathf.Log(a); for (float i = step; i <= maxX; i = i + step) { float y = Mathf.Log(i) / down; y *= factor; vectors[k] = new Vector3(i, y, 0); k++; } vectors[100 * maxX - 1] = new Vector3(maxX, Mathf.Log(maxX) / down * factor, 0); mesh.vertices = vectors; int[] triangle = new int[100 * maxX * 2 - 2]; for (int i = 0; i < vectors.Length - 1; ++i) { triangle[2 * i] = i; triangle[2 * i + 1] = i + 1; } mesh.SetIndices(triangle, MeshTopology.Lines, 0); GetComponent().mesh = mesh; } }