Android Open Source - RZAndroidBaseUtils Math






From Project

Back to project page RZAndroidBaseUtils.

License

The source code is released under:

MIT License

If you think the Android project RZAndroidBaseUtils listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.raizlabs.baseutils;
/* w  w  w.  j  a v  a  2 s  .c  om*/

/**
 * 
 * A class of math utility functions
 * 
 * @author Dylan James
 *
 */
public class Math {
  /**
   * Returns a linearly interpolated value t percent of the way between the
   * given start and end values.
   * @param start The start value
   * @param end The end value
   * @param t The percentage along the way to end (0 being the start, 1 being
   * the end)
   * @return The linearly interpolated value
   */
  public static int lerp(int start, int end, float t) {
    return (int) (start + (end - start) * t); 
  }
  
  /**
   * Returns a linearly interpolated value t percent of the way between the
   * given start and end values.
   * @param start The start value
   * @param end The end value
   * @param t The percentage along the way to end (0 being the start, 1 being
   * the end)
   * @return The linearly interpolated value
   */
  public static float lerp(float start, float end, float t) {
    return start + (end - start) * t;
  }
  
  /**
   * Returns a value between 0 and 1 which represents how far along the start
   * and end values the given value is. For example, normalize(0, 100, 50) would
   * return 0.5 as 50 is halfway between 0 and 100.
   * <br/><br/>
   * Note that values larger than end will produce numbers larger than 1 and
   * values smaller than start will produce negative numbers.
   * <br/><br/>
   * Inverse of {@link #lerp(float, float, float)}
   * @param start The start value
   * @param end The end value
   * @param value The value to normalize
   * @return The value normalized between start and end
   */
  public static float normalize(float start, float end, float value) {
    return (value - start) / (end - start);
  }
  
  /**
   * Clamps the given value between the two end points.
   * @param value The value to clamp.
   * @param min The minimum allowed value.
   * @param max The maximum allowed value.
   * @return The clamped value.
   */
  public static float clamp(float value, float min, float max) {
    return java.lang.Math.min(max, java.lang.Math.max(min, value));
  }
  
  public static float distanceSquared(float x1, float x2, float y1, float y2) {
    return (float) (java.lang.Math.pow(x2 - x1, 2) + java.lang.Math.pow(y2 - y1, 2));
  }
  
  public static float distance(float x1, float x2, float y1, float y2) {
    return (float) java.lang.Math.sqrt(
        java.lang.Math.pow(x2 - x1, 2)  + java.lang.Math.pow(y2 - y1, 2));
  }
}




Java Source Code List

com.raizlabs.baseutils.CompatibilityUtils.java
com.raizlabs.baseutils.IOUtils.java
com.raizlabs.baseutils.Logger.java
com.raizlabs.baseutils.Math.java
com.raizlabs.baseutils.StringUtils.java
com.raizlabs.baseutils.ThreadingUtils.java
com.raizlabs.baseutils.Wrapper.java
com.raizlabs.baseutils.examples.MainActivity.java
com.raizlabs.baseutils.examples.asyncdrawable.AsyncDrawableExampleActivity.java
com.raizlabs.baseutils.examples.asyncdrawable.AsyncDrawableListExampleActivity.java
com.raizlabs.baseutils.examples.simplegenericadapter.SimpleGenericAdapterExampleActivity.java
com.raizlabs.baseutils.examples.viewgroupadapter.ViewGroupAdapterExampleActivity.java
com.raizlabs.baseutils.examples.viewholderstrategy.SimpleViewHolderStrategyExampleActivity.java
com.raizlabs.collections.ListUtils.java
com.raizlabs.collections.MappableSet.java
com.raizlabs.collections.TransactionalHashSet.java
com.raizlabs.concurrent.BasePrioritizedRunnable.java
com.raizlabs.concurrent.ConcurrencyUtils.java
com.raizlabs.concurrent.PrioritizedRunnable.java
com.raizlabs.concurrent.Prioritized.java
com.raizlabs.content.sharing.SharingUtils.java
com.raizlabs.database.CursorIterable.java
com.raizlabs.database.CursorIterator.java
com.raizlabs.events.EventListener.java
com.raizlabs.events.Event.java
com.raizlabs.events.ProgressListener.java
com.raizlabs.events.SimpleEventListener.java
com.raizlabs.functions.Delegate.java
com.raizlabs.functions.Predicate.java
com.raizlabs.functions.Provider.java
com.raizlabs.graphics.ImageFactory.java
com.raizlabs.graphics.drawable.async.AsyncDrawableTask.java
com.raizlabs.graphics.drawable.async.AsyncDrawableUtils.java
com.raizlabs.graphics.drawable.async.AsyncDrawableWrapper.java
com.raizlabs.graphics.drawable.async.AsyncDrawable.java
com.raizlabs.graphics.drawable.async.BaseAsyncDrawableTask.java
com.raizlabs.imagecaching.ImageCache.java
com.raizlabs.imagecaching.PrefixedImageCacheAdapter.java
com.raizlabs.imagecaching.StubImageCache.java
com.raizlabs.json.JSONArrayParserDelegate.java
com.raizlabs.json.JSONHelper.java
com.raizlabs.synchronization.OneShotLock.java
com.raizlabs.tasks.RZAsyncTaskEvent.java
com.raizlabs.tasks.RZAsyncTaskListener.java
com.raizlabs.tasks.RZAsyncTask.java
com.raizlabs.util.observable.ObservableData.java
com.raizlabs.util.observable.ObservableListAdapter.java
com.raizlabs.util.observable.ObservableList.java
com.raizlabs.view.ViewCompatibility.java
com.raizlabs.view.animation.AnimationListenerWrapper.java
com.raizlabs.view.animation.RelativeLayoutParamsAnimation.java
com.raizlabs.view.animation.ResizeAnimation.java
com.raizlabs.widget.EvenLinearLayout.java
com.raizlabs.widget.ImageMixView.java
com.raizlabs.widget.SlideRevealLayout.java
com.raizlabs.widget.ViewUtils.java
com.raizlabs.widget.adapters.ListBasedAdapter.java
com.raizlabs.widget.adapters.SimpleGenericAdapter.java
com.raizlabs.widget.adapters.ViewGroupAdapter.java
com.raizlabs.widget.adapters.ViewHolderStrategyAdapter.java
com.raizlabs.widget.utils.SimpleViewHolderStrategy.java
com.raizlabs.widget.utils.ViewHolderStrategyConverter.java
com.raizlabs.widget.utils.ViewHolderStrategyUtils.java
com.raizlabs.widget.utils.ViewHolderStrategy.java