Frage

Ich versuche, eine Welle auf der Achse zu drehen, aber irgendwie, wenn ich zur Sünde übergehen werde und einen Wert mehr als 45 Die Welle scheint Verzerrung zu bekommen, oder die Funktion wird nicht mit dem richtigen Winkel gedreht.

...
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];
}

Dies ist der gesamte 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);
}
War es hilfreich?

Lösung

Es ist unklar aus Ihrem Code, was Sie genau tun, aber Sie erwähnen 45 Grad

Math.sin() und Math.cos() Arbeiten mit Radianshttp://docs.oracle.com/javase/1.4.2/docs/api/java/lang/math.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top