• Create Account

# manderin87

Member Since 20 Feb 2005
Offline Last Active Dec 14 2012 10:38 PM

### In Topic: Polygon rotation is too fast compared to objects rotation

30 November 2012 - 01:11 PM

Ive rechecked everything... The rotation code was the problem.... I made two lists to keep track of the points... the original points and the rotated points. Both were pointing to the same object, i thought they were seperate, but they were not... so I just made both lists create a new point when adding to the list. The rotation is now correct.

Here is the polygon constructor

```public Polygon(Point... points) {
if(points.length < 3) {
throw new IllegalArgumentException("polygons must contain at least 3 points.");
}

for(Point p : points) {
}
}
```

And the rotation code.

```public void rotate(float x0, float y0, float degree) {
for(int i = 0; i < mOriginalPoints.size(); i++) {
Point point = mOriginalPoints.get(i);

float x = (float) (x0 + (point.x - x0) * Math.cos(Utilities.toRadians(degree)) -
float y = (float) (y0 + (point.x - x0) * Math.sin(Utilities.toRadians(degree)) +

Point p = mRotatedPoints.get(i);
p.x = x;
p.y = y;
}
```

thanks everyone for the help and forgive my idiocy for not noticing they were they same instead of being seperate.

### In Topic: Polygon rotation is too fast compared to objects rotation

29 November 2012 - 09:11 PM

while(mDegree >= 360) {mDegree -= 360;}
while(mDegree < 0) {mDegree += 360;}

Didnt fix it. I know it has to be something wrong with the polygone rotation, its not working correctly. Ive stared at it for hours and i dont know what the problem is. Ive checked several places and the algorithm seems to be correct, but its not rotating correctly.

### In Topic: Polygon rotation is too fast compared to objects rotation

29 November 2012 - 09:04 PM

Does SpriteBatch::draw() want degrees or radians?

Degrees

### In Topic: Polygon rotation is too fast compared to objects rotation

29 November 2012 - 06:38 PM

### In Topic: Polygon rotation is too fast compared to objects rotation

29 November 2012 - 05:34 PM

This method is better for fixing the degree but it didnt change the behavior that I am experiencing

```if(mDegree >= 360) {
mDegree -= 360;
} else if(mDegree < 0) {
mDegree += 360;
}
```

PARTNERS