This site uses strictly necessary cookies. More Information

X# How do i use lines to calculate triangles on mesh??

Hello i would like to know how to code these two things to my catmull code(which is below).

(1). How would i be able to draw lines like this in Pic1(SEG1), and then using those calculations than create a mesh like in Pic1(SEG2), would anyone know how to do do this?

-Pic1

(2). How do i create calculate a point in the center and draw lines to it(and around the circle) like in Pic2(SEG1), then also using those calculations than to create a mesh like in Pic2(SEG2), would anyone know how to do do this?

-Pic2

**Here is my catmull code.**using UnityEngine; using System.Collections; using System.Collections.Generic;

[RequireComponent(typeof(MeshFilter), typeof(MeshRenderer))] public class CatmullSpline : MonoBehaviour {

`public List<Transform> controlPointsList = new List<Transform>(); public bool isLooping = true; public int SEGMENT_COUNT; void OnDrawGizmos() { for (int i = 0; i < controlPointsList.Count; i++) { if ((i == 0 || i == controlPointsList.Count - 2 || i == controlPointsList.Count - 1) && !isLooping) { continue; } DisplayCatmullRomSpline(i); } Gizmos.color = Color.white; for (int i = 0; i < controlPointsList.Count; i++) { Gizmos.DrawWireSphere(controlPointsList[i].position, 0.3f); } } Vector3 ReturnCatmullRom(float t, Vector3 p0, Vector3 p1, Vector3 p2, Vector3 p3) { Vector3 a = 0.5f * (2f * p1); Vector3 b = 0.5f * (p2 - p0); Vector3 c = 0.5f * (2f * p0 - 5f * p1 + 4f * p2 - p3); Vector3 d = 0.5f * (-p0 + 3f * p1 - 3f * p2 + p3); Vector3 pos = a + (b * t) + (c * t * t) + (d * t * t * t); return pos; } void DisplayCatmullRomSpline(int pos) { Vector3 p0 = controlPointsList[ClampListPos(pos - 1)].position; Vector3 p1 = controlPointsList[pos].position; Vector3 p2 = controlPointsList[ClampListPos(pos + 1)].position; Vector3 p3 = controlPointsList[ClampListPos(pos + 2)].position; Vector3 lastPos = Vector3.zero; for (float i = 0; i < SEGMENT_COUNT; i++) { float t = (float)i / SEGMENT_COUNT; Vector3 newPos = ReturnCatmullRom(t, p0, p1, p2, p3); if (t == 0) { lastPos = newPos; continue; } Gizmos.color = Color.white; Gizmos.DrawLine(lastPos, newPos); Gizmos.color = Color.yellow; var tan = ReturnCatmullRomTangent(t, p0, p1, p2, p3); Gizmos.DrawLine(newPos, newPos + tan * 3); Gizmos.DrawSphere(newPos, 0.3f); lastPos = newPos; } Gizmos.DrawLine(lastPos, p2); } int ClampListPos(int pos) { if (pos < 0) { pos = controlPointsList.Count - 1; } if (pos > controlPointsList.Count) { pos = 1; } else if (pos > controlPointsList.Count - 1) { pos = 0; } return pos; } public Vector3 ReturnCatmullRomTangent(float t, Vector3 p0, Vector3 p1, Vector3 p2, Vector3 p3) { Vector3 b = 0.5f * (p2 - p0); Vector3 c = (2f * p0 - 5f * p1 + 4f * p2 - p3); Vector3 d = 1.5f * (-p0 + 3f * p1 - 3f * p2 + p3); Vector3 tangent = b + c * t + d * t * t; return tangent.normalized; } }`

the center point would be just taking the position of all the points and getting the average. as for the zig-zag approach youll have to figure out an algorithm that works with your code to reference the nodes you want. You wouldnt create the "lines" or edges of the triangles, youll have to look in to mesh creation tutorials. The best I know of (easy to understand and thoroughly explained) is here: http://catlikecoding.com/unity/tutorials/procedural-grid/

Well @b1gr4yn i implemented the things in but i am getting an error **NullReferenceException: Object reference not set to an instance of an object**

Here is what i have done.

### Your answer

### Welcome to Unity Answers

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.

### Follow this Question

### Related Questions

Hiding part of mesh 0 Answers

Can someone please help me with mesh extrusion 0 Answers

How do i calculate mesh on a spline?? 0 Answers

How do i add lines to end Cubes?? 1 Answer

Generate Polygon Plane from Array 0 Answers