package am.lghcustomview.ball; import android.graphics.PointF; /** * Created by LinGuanHong on 2017/1/15. */ public class BallHelper { private float xComponent; private float yComponent; public float getXComponent() { return xComponent; } public float getYComponent() { return yComponent; } public BallHelper(float x, float y) { this.xComponent = x; this.yComponent = y; } public BallHelper(PointF p1, PointF p2) { this.xComponent = p2.x - p1.x; this.yComponent = p2.y - p1.y; } public float GetDistance() { double distance = (float) (Math.pow(xComponent,2)+Math.pow(yComponent,2)); distance = Math.sqrt(distance); return (float) distance; } public void unitVectorNormalize() { float dist= GetDistance(); if(dist !=0) { xComponent = xComponent / dist; yComponent = yComponent / dist; } } public void unitVectorTangent() { unitVectorNormalize(); float swap = xComponent; xComponent = -yComponent; yComponent = swap; } public static float GetDotProduct(BallHelper a, BallHelper b) { return a.xComponent*b.xComponent + a.yComponent*b.yComponent; } public void MultiplyScalar(float scalar) { xComponent = xComponent*scalar; yComponent = yComponent*scalar; } }