Ich möchte mein Dreieck drehen, aber es gibt einige Probleme.Dreieck Drehung verursacht Verformung
ich es mit meinen Pfeiltasten am rotierenden aber wie Sie sehen es einige Verformungen auf Form des Dreiecks hat:
Hier ist mein Code:
typedef struct {
point_t pos; // position of the triangle
float angle; // view angle
float r;
} weapon_t;
void drawPlayer(weapon_t tw) {
glBegin(GL_TRIANGLES);
glColor3f(0.1, 0.2, 0.3);
glVertex2f(tw.pos.x, tw.pos.y);
glVertex2f(tw.pos.x + 150 * cos(tw.angle * D2R), tw.pos.y + 100 * sin(tw.angle * D2R) + 8);
glVertex2f(tw.pos.x + 150 * cos(tw.angle * D2R), tw.pos.y + 100 * sin(tw.angle * D2R) - 8);
glEnd();
}
void onTimer(int v) {
glutTimerFunc(TIMER_PERIOD, onTimer, 0);
if (right) {
if (weapon.angle != -45)
turnWeapon(&weapon, -3);
}
if (left) {
if (weapon.angle != 45)
turnWeapon(&weapon, 3);
}
Irgendwelche Idee Leute?
Vielen Dank für Geck helfen, ich die Formeln nahm von meinem Kursleiter :) Ich habe es wie folgt geändert: glVertex2f (tw.pos.x + 150 * c - 8 * s, tw.pos.y + 150 * s + 8 * c); \t glVertex2f (tw.pos.x + 150 * c + 8 * s, tw.pos.y + 150 * s - 8 * c); und es funktioniert total. –