From 0e9fd24754ca9605ae08ae419651e1577acf0b84 Mon Sep 17 00:00:00 2001 From: fd Date: Thu, 29 Jan 2015 01:08:23 -0500 Subject: [PATCH] Minor Fixes for beziers angles --- src/itdelatrisu/opsu/objects/Slider.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/itdelatrisu/opsu/objects/Slider.java b/src/itdelatrisu/opsu/objects/Slider.java index 53fbc1b5..3830c614 100644 --- a/src/itdelatrisu/opsu/objects/Slider.java +++ b/src/itdelatrisu/opsu/objects/Slider.java @@ -521,7 +521,9 @@ public class Slider implements HitObject { for(int i=0; i=2){ + beziers.add(new Bezier2(points.toArray(new Vec2f[0]))); + } points.clear(); } points.add(tpoi); @@ -588,10 +590,18 @@ public class Slider implements HitObject { } //if (hitObject.getRepeatCount() > 1) { Vec2f c1 = curve[0]; - Vec2f c2 = curve[1]; + int cnt = 1; + Vec2f c2 = curve[cnt++]; + while(c2.cpy().sub(c1).len()<1){ + c2 = curve[cnt++]; + } startAngle = (float) (Math.atan2(c2.y - c1.y, c2.x - c1.x) * 180 / Math.PI); c1 = curve[ncurve-1]; - c2 = curve[ncurve-2]; + cnt= ncurve-2; + c2 = curve[cnt]; + while(c2.cpy().sub(c1).len()<1){ + c2 = curve[cnt--]; + } endAngle = (float) (Math.atan2(c2.y - c1.y, c2.x - c1.x) * 180 / Math.PI); //} //System.out.println("Total Distance: "+totalDistance+" "+distanceAt+" "+beziers.size()+" "+hitObject.getPixelLength()+" "+hitObject.xMultiplier);