1
三角形を回転させたいが、いくつか問題がある。 三角形の回転で変形が発生する
そのデフォルト形式:私は、矢印キーでそれを回転させていますが、それは三角形の形状にいくつかの変形を持っているあなたが見るように:
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);
}
:ここ
が私のコードです
何人か考えてみませんか?
おかげで、私はこのようにそれを変更している私のコースのインストラクター:)から数式を取った: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);それは完全に働いています。 –