Search In
• More options...
Find results that contain...
Find results in...

## Recommended Posts

Hey I was wondering how to get the rainbow paint fade(shown here:

) as opposed to the regular random loop(shown here:
) Edited by Dagamer131

##### Share on other sites

You would want to use a linear interpolation (lerp) function. A quick google search should find you what you are looking for.

##### Share on other sites

could you link an example? I cant find a good one

##### Share on other sites

Here is a (C#) example. This is just one of many ways to do it. The most important function is "Lerp" which allows you to smoothly transition between color values.

`using System;using System.Drawing;using GTA;namespace ColorInterpolator{    public static class Extensions    {        private static double Lerp(double d1, double d2, double d)        {            return d1 + (d2 - d1) * d;        }        public static Color FadeTo(this Color color1, Color color2, double d)        {            double r = Lerp(color1.R, color2.R, d);            double g = Lerp(color1.G, color2.G, d);            double b = Lerp(color1.B, color2.B, d);            return Color.FromArgb((int)r, (int)g, (int)b);        }    }    public class ScriptMain : Script    {        public ScriptMain()        {            Tick += RunFrame;        }        /// <summary>        /// Total time to fade between colors in millseconds        /// </summary>        private readonly int FadeTime = 700;        private static readonly Color[] ColorList =        {            Color.Red,            Color.Green,            Color.Blue        };        private float fadeAmount;        private int colorIndex;            private Color startColor = ColorList[0],            endColor = ColorList[1];        private Color currentColor;        void RunFrame(object sender, EventArgs e)        {            if (fadeAmount < 1.0f)            {                fadeAmount += Game.LastFrameTime * (1000.0f / FadeTime);                if (fadeAmount < 0.0f)                    fadeAmount = 0.0f;                else if (fadeAmount > 1.0f)                    fadeAmount = 1.0f;                currentColor = startColor.FadeTo(endColor, fadeAmount);            }            else            {                colorIndex++;                colorIndex %= ColorList.Length;                startColor = currentColor;                endColor = ColorList[colorIndex];                fadeAmount = 0.0f;            }        }    }}`

Edited by CamxxCore

## Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

×   Pasted as rich text.   Paste as plain text instead

Only 75 emoji are allowed.

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×