Jump to content
    1. Welcome to GTAForums!

    1. GTANet.com

    1. GTA Online

      1. The Criminal Enterprises
      2. Updates
      3. Find Lobbies & Players
      4. Guides & Strategies
      5. Vehicles
      6. Content Creator
      7. Help & Support
    2. Red Dead Online

      1. Blood Money
      2. Frontier Pursuits
      3. Find Lobbies & Outlaws
      4. Help & Support
    3. Crews

    1. Grand Theft Auto Series

      1. Bugs*
      2. St. Andrews Cathedral
    2. GTA VI

    3. GTA V

      1. Guides & Strategies
      2. Help & Support
    4. GTA IV

      1. The Lost and Damned
      2. The Ballad of Gay Tony
      3. Guides & Strategies
      4. Help & Support
    5. GTA San Andreas

      1. Classic GTA SA
      2. Guides & Strategies
      3. Help & Support
    6. GTA Vice City

      1. Classic GTA VC
      2. Guides & Strategies
      3. Help & Support
    7. GTA III

      1. Classic GTA III
      2. Guides & Strategies
      3. Help & Support
    8. Portable Games

      1. GTA Chinatown Wars
      2. GTA Vice City Stories
      3. GTA Liberty City Stories
    9. Top-Down Games

      1. GTA Advance
      2. GTA 2
      3. GTA
    1. Red Dead Redemption 2

      1. PC
      2. Help & Support
    2. Red Dead Redemption

    1. GTA Mods

      1. GTA V
      2. GTA IV
      3. GTA III, VC & SA
      4. Tutorials
    2. Red Dead Mods

      1. Documentation
    3. Mod Showroom

      1. Scripts & Plugins
      2. Maps
      3. Total Conversions
      4. Vehicles
      5. Textures
      6. Characters
      7. Tools
      8. Other
      9. Workshop
    4. Featured Mods

      1. Design Your Own Mission
      2. OpenIV
      3. GTA: Underground
      4. GTA: Liberty City
      5. GTA: State of Liberty
    1. Rockstar Games

    2. Rockstar Collectors

    1. Off-Topic

      1. General Chat
      2. Gaming
      3. Technology
      4. Movies & TV
      5. Music
      6. Sports
      7. Vehicles
    2. Expression

      1. Graphics / Visual Arts
      2. GFX Requests & Tutorials
      3. Writers' Discussion
      4. Debates & Discussion
    1. Announcements

    2. Support

    3. Suggestions

*DO NOT* SHARE MEDIA OR LINKS TO LEAKED COPYRIGHTED MATERIAL. Discussion is allowed.

Rainbow paint fade C++


Dagamer131
 Share

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
Link to comment
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.

Link to comment
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;            }        }    }}

You could add any amount of colors to the ColorList and they would be added to the fade sequence. You can adjust the 'FadeTime' to make it fade faster (or slower).

Edited by CamxxCore
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • 1 User Currently Viewing
    0 members, 0 Anonymous, 1 Guest

×
×
  • Create New...

Important Information

By using GTAForums.com, you agree to our Terms of Use and Privacy Policy.