Question

Je suis en train de tourner une vague sur l'axe, mais en quelque sorte si je vais passer au péché et cos une valeur de plus de 45 la vague semble obtenir la distorsion ou la fonction ne tourne pas avec l'angle approprié.

...
wave

// ROtate 
for (int i=0; i<300; i++){
    coordinatesX[i] = ((coordinatesX[i] * (float)Math.cos(60)) - (coordinatesY[i] * (float)Math.sin(60))) + coordinatesX[i];
    coordinatesY[i] = (coordinatesX[i] * (float)Math.sin(60)) + (coordinatesY[i] * (float)Math.cos(60)) + coordinatesY[i];
}

Ceci est tout le code:

// define newpath
float[] coordinatesX = new float[300]; 
float[] coordinatesY = new float[300];
// wave
for (int i=0; i<300; i++){
    coordinatesX[i] =  i;
    coordinatesY[i] = (float)(20 * (Math.sin((-0.10 * coordinatesX[i]))));
    System.out.println(coordinatesX[i]);
    System.out.println(coordinatesY[i]);
}


// ROtate 
for (int i=0; i<300; i++){
    coordinatesX[i] = ((coordinatesX[i] * (float)Math.cos(-10)) - (coordinatesY[i] * (float)Math.sin(-10))) + coordinatesX[i];
    coordinatesY[i] = (coordinatesX[i] * (float)Math.sin(-10)) + (coordinatesY[i] * (float)Math.cos(-10)) + coordinatesY[i];
}

// Translate 
for (int i=0; i < 300; i++) {
    coordinatesX[i] = coordinatesX[i]+ (200);
    coordinatesY[i] = coordinatesY[i] + (300);
}
Était-ce utile?

La solution

on ne sait pas à partir de votre code ce que vous faites exactement, mais vous parlez de 45 degrés

Math.sin() et travail Math.cos() avec radians http://docs.oracle.com/javase /1.4.2/docs/api/java/lang/Math.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top