Created
March 23, 2021 18:39
-
-
Save fguillen/d9343ed93e67d7a1cf13371255331e09 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Convert from one magnitude to another. | |
Example: | |
LinearProportionConverter collisionToVolume = new LinearProportionConverter(soundVolumeLimits.x, soundVolumeLimits.y, collisionMagnitudeLimits.x, collisionMagnitudeLimits.y); | |
float volume = collisionToVolume.CalculateDimension1Value(collisionMagnitude); | |
audioSource.PlayOneShot(clip, volume); | |
*/ | |
public class LinearProportionConverter | |
{ | |
float dimension1Min; | |
float dimension1Max; | |
float dimension2Min; | |
float dimension2Max; | |
public LinearProportionConverter(float dimension1Min, float dimension1Max, float dimension2Min, float dimension2Max) | |
{ | |
this.dimension1Min = dimension1Min; | |
this.dimension1Max = dimension1Max; | |
this.dimension2Min = dimension2Min; | |
this.dimension2Max = dimension2Max; | |
} | |
public float CalculateDimension1Value(float dimension2Value) | |
{ | |
var a = dimension2Min; | |
var b = dimension2Max; | |
var c = dimension1Min; | |
var d = dimension1Max; | |
var e = dimension2Value; | |
var result = c + (((e - a) * (d - c)) / (b - a)); | |
return result; | |
} | |
public float CalculateDimension2Value(float dimension1Value) | |
{ | |
var a = dimension1Min; | |
var b = dimension1Max; | |
var c = dimension2Min; | |
var d = dimension2Max; | |
var e = dimension1Value; | |
var result = c + (((e - a) * (d - c)) / (b - a)); | |
return result; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment