Get Random Vector3 : Random « Development Class « C# / C Sharp






Get Random Vector3

 
//////////////////////////////////////////////////////////////////////
//  Copyright (C) 2010 by Conquera Team
//  Part of the Conquera Project
//
//  This program is free software: you can redistribute it and/or modify
//  it under the terms of the GNU General Public License as published by
//  the Free Software Foundation, either version 2 of the License, or
//  (at your option) any later version.
//
//  This program is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  GNU General Public License for more details.
//
//  You should have received a copy of the GNU General Public License
//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
////////////////////////////////////////////////////////////////////////

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Xna.Framework;

namespace Ale.Tools
{
    /// <summary>
    /// 
    /// </summary>
    public static class AleMathUtils
    {
        public static Random Random = new Random();

        /// <summary>
        /// Gets the perpendicular vector to a specified vector
        /// </summary>
        /// <param name="vec"></param>
        /// <returns></returns>
        public static Vector2 GetPerpVector(Vector2 vec)
        {
            Vector2 perp;
            GetPerpVector(ref vec, out perp);
            return perp;
        }

        public static Vector3 GetRandomVector3(ref Vector3 vec, ref Vector3 variation)
        {
            Vector3 outVec;
            GetRandomVector3(ref vec, ref variation, out outVec);
            return outVec;
        }
        public static void GetRandomVector3(ref Vector3 vec, ref Vector3 variation, out Vector3 outVec)
        {
            outVec = new Vector3(
                GetRandomFloat(vec.X, variation.X),
                GetRandomFloat(vec.Y, variation.Y),
                GetRandomFloat(vec.Z, variation.Z));
        }

        public static Vector3 GetRandomVector3(ref Vector3 vec, float variation)
        {
            Vector3 outVec;
            GetRandomVector3(ref vec, variation, out outVec);
            return outVec;
        }

        public static void GetRandomVector3(ref Vector3 vec, float variation, out Vector3 outVec)
        {
            outVec = new Vector3(
                GetRandomFloat(vec.X, variation),
                GetRandomFloat(vec.Y, variation),
                GetRandomFloat(vec.Z, variation));
        }

        public static float GetRandomFloat(float value, float variation)
        {
            return ((float)Random.NextDouble() - 0.5f) * variation + value;
        }

        /// <summary>
        /// Get a random number arround 0
        /// </summary>
        /// <param name="variation"></param>
        /// <returns></returns>
        public static float GetRandomFloat(float variation)
        {
            return ((float)Random.NextDouble() - 0.5f) * variation;
        }
    }
}

   
  








Related examples in the same category

1.Get Random number
2.Shifted and scaled random integers.
3.Roll a six-sided die 6000 times.
4.Get next random number in doubleGet next random number in double
5.An automated pair of diceAn automated pair of dice
6.Random Color and Rectangle
7.Example of the Random class constructors and Random.NextDouble( ) method.
8.Next bytes
9.Generate and display 5 random integers.
10.Generate and display 5 random integers between 0 and 100.
11.Generate and display 5 random integers from 50 to 100.
12.Generate and display 5 random floating point values from 0 to 1.
13.Generate and display 5 random floating point values from 0 to 5.
14.Returns a nonnegative random number less than the specified maximum.
15.A random number within a specified range.
16.Returns a random DateTime value.
17.Returns a random TimeSpan value.
18.Returns a random Double value.
19.Returns a random Decimal value.
20.Returns a random Boolean value.
21.Generate random string
22.Get random shorten URL
23.Get Random Password
24.Random Double From Range
25.Gets a random Lorem Ipsum phrase with the given word count, starting with "Lorem ipsum dolor sit amet" and ending with a dot.
26.Randomises elements in List
27.Get random element from a List
28.Get random value within a range
29.Given a directory select a random file from it.
30.Generates a random string with the given length