示例#1
0
        private static GameObject DrawLongitude(float azimuth)
        {
            var azimuths = DrawingUtilities.AnglesInRange(0, Mathf.PI, NumberOfPointsPerLongitude);

            var vertices =
                azimuths.Select(
                    colatitude => DrawingUtilities.CreateVectorAt(colatitude, azimuth))
                .ToArray();

            var longitudeObject =
                DrawingUtilities.CreateLineObject(
                    "Longitude " + Mathf.Rad2Deg * azimuth,
                    vertices,
                    "Boundaries");

            return(longitudeObject);
        }
示例#2
0
        private static GameObject DrawLabel(float colatitude, float azimuth)
        {
            var text = String.Format("{0,3:N0}  {1,3:N0}", Mathf.Rad2Deg * colatitude, Mathf.Rad2Deg * azimuth);

            var labelObject = new GameObject("Label " + text);

            var normal     = DrawingUtilities.CreateVectorAt(colatitude, azimuth);
            var localEast  = Vector3.Cross(normal, new Vector3(0, 0, 1));
            var localNorth = Vector3.Cross(localEast, normal);

            labelObject.transform.position = normal;
            labelObject.transform.rotation = Quaternion.LookRotation(-normal, localNorth);

            var textMesh = labelObject.AddComponent <TextMesh>();

            textMesh.text = text;
            textMesh.font = Resources.Load("ARIAL", typeof(Font)) as Font;
            textMesh.renderer.material = Resources.Load("OneSidedMaterial", typeof(Material)) as Material;
            textMesh.characterSize     = 0.005f;
            textMesh.anchor            = TextAnchor.UpperCenter;

            return(labelObject);
        }