void Car::draw(DrawingState* d) { // Draw four wheel glColor3f(.1f,.1f,.1f); glPushMatrix(); glTranslatef(w-.5f,h,f-h); drawWheel(h,1); glPopMatrix(); glPushMatrix(); glTranslatef(w-.5f,h,f+r-h-1); drawWheel(h,1); glPopMatrix(); glPushMatrix(); glTranslatef(-w+.5f,h,f-h); glRotatef(180,0,1,0); drawWheel(h,1); glPopMatrix(); glPushMatrix(); glTranslatef(-w+.5f,h,f+r-h-1); glRotatef(180,0,1,0); drawWheel(h,1); glPopMatrix(); // Draw the body of the car glColor3fv(&color.r); drawBody(d); }
void drawTankForDirectionDOWN() { COORD drawPos = {10, 0}; char symbol1 = 203; char symbol2 = 205; char symbol3 = 32; printf("\n"); SetConsoleCursorPosition(hCon,drawPos); drawWheel(drawPos, symbol2); drawPos.Y++; SetConsoleCursorPosition(hCon,drawPos); drawWheel(drawPos, symbol3); drawPos.Y++; SetConsoleCursorPosition(hCon,drawPos); drawWheel(drawPos, symbol3); drawPos.Y++; SetConsoleCursorPosition(hCon,drawPos); drawWheel(drawPos, symbol1); drawPos.Y++; SetConsoleCursorPosition(hCon,drawPos); printf(" %c ",186); drawPos.Y++; SetConsoleCursorPosition(hCon,drawPos); printf(" %c ",223); }
void ColorWheel::resizeEvent(QResizeEvent *event) { wheel = QPixmap(event->size()); wheel.fill(palette().background().color()); drawWheel(event->size()); //drawSquareImage(current.hue()); update(); }
GLuint wheel::createDL() { GLuint temp; temp = glGenLists(1); glNewList(temp,GL_COMPILE); drawWheel(); glEndList(); return(temp); }
void ColorWheel::svChanged(const QColor &newcolor) { int hue = current.hue(); current.setHsv(hue, newcolor.saturation(), newcolor.value()); if(!isVisible()) return; drawWheel(size()); drawSquare(hue); drawIndicator(hue); drawPicker(newcolor); repaint(); emit colorChange(current); }
void Car::draw() { // Draw Chassis GM_POINT* pos = convert->convertB2Vec2ToGM_Point(m_car->GetPosition()); glPushMatrix(); glTranslatef(pos->x,pos->y,0.0f); // glRotatef(convert->convertRadiansToDegrees(m_car->GetAngle()),0.0f,0.0f,1.0f); glBegin(GL_POLYGON); for(int i = 0; i < chassis.m_vertexCount; ++i) { glVertex2f(chassis.m_vertices[i].x*PIXEL_TO_METER,chassis.m_vertices[i].y*PIXEL_TO_METER); } glEnd(); // Draw the wheels // wheel 1 drawWheel(convert->convertB2Vec2ToGM_Point(m_wheel1->GetPosition()),0.4f*PIXEL_TO_METER,m_wheel1->GetAngle()); //wheel 2 drawWheel(convert->convertB2Vec2ToGM_Point(m_wheel2->GetPosition()),0.4f*PIXEL_TO_METER,m_wheel2->GetAngle()); glPopMatrix(); }
void ColorWheel::hueChanged(const int &hue) { if( hue<0 ||hue>359)return; int s = current.saturation(); int v = current.value(); current.setHsv(hue, s, v); if(!isVisible()) return; drawWheel(size()); drawSquare(hue); drawIndicator(hue); drawPicker(current); repaint(); emit colorChange(current); }
/*! Redraw panel and wheel \param painter Painter */ void QwtWheel::draw(QPainter *painter, const QRect&) { qDrawShadePanel( painter, rect().x(), rect().y(), rect().width(), rect().height(), #if QT_VERSION < 0x040000 colorGroup(), #else palette(), #endif true, d_data->borderWidth ); drawWheel( painter, d_data->sliderRect ); if ( hasFocus() ) QwtPainter::drawFocusRect(painter, this); }
/*** シミュレーションループ ***/ static void simLoop(int pause) { if (!pause) { dSpaceCollide(space,0,&nearCallback); // add control(); dWorldStep(world, 0.01); dJointGroupEmpty(contactgroup); // add } const dReal *linear_vel = dBodyGetLinearVel(base.body); const dReal *angular_vel = dBodyGetAngularVel(base.body); printf("linear : %.3f %.3f %.3f\n", linear_vel[0], linear_vel[1], linear_vel[2]); printf("angular: %.3f %.3f %.3f\n", angular_vel[0], angular_vel[1], angular_vel[2]); drawBase(); drawWheel(); // add drawBall(); //add drawGoal(); }
void Car::draw() { if (!active) return; // Reinicia transformações glPushMatrix(); glTranslatef(_position.getX(), _position.getY(), _position.getZ() + 0.2); glRotatef(_turnAngle, 0, 0, 1); //corpo do carro glPushMatrix(); GLfloat bodyAmb[] = { 0.35f,0.0f,0.0f,1.0f }; GLfloat bodyDiff[] = { 0.69f,0.0f,0.0f,1.0f }; GLfloat bodySpec[] = { 0.29f,0.28f,0.29f,1.0f }; GLfloat bodyShine = 46; glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, bodyAmb); glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, bodyDiff); glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, bodySpec); glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, bodyShine); glColor3f(1.0f, 0.0f, 0.0f); glScalef(1.0f, 0.8f, 0.3f); drawCube(); glPopMatrix(); //cockpit do carro glPushMatrix(); glTranslatef(-0.2f, 0.0f, 0.20f); glScalef(0.4f, 0.6f, 0.1f); GLfloat cockpitAmb[] = { 0.07f,0.07f,0.07f,1.0f }; GLfloat cockpitDiff[] = { 0.13f,0.17f,0.17f,1.0f }; GLfloat cockpitSpec[] = { 0.42f,0.41f,0.41f,1.0f }; GLfloat cockpitShine = 4; glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, cockpitAmb); glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, cockpitDiff); glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, cockpitSpec); glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, cockpitShine); glColor3f(1.0, 1.0, 1.0); drawCube(); glColor3f(1.0, 0.0, 0.0); glutWireCube(1.0); glPopMatrix(); // roda traseira direita glPushMatrix(); GLfloat wheel1Amb[] = { 0.0f,0.0f,0.0f,1.0f }; GLfloat wheel1Diff[] = { 0.13f,0.13f,0.14f,1.0f }; GLfloat wheel1Spec[] = { 0.17f,0.18f,0.19f,1.0f }; GLfloat wheel1Shine = 12; glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, wheel1Amb); glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, wheel1Diff); glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, wheel1Spec); glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, wheel1Shine); glColor3f(1.0, 1.0, 1.0); glTranslatef(-0.3f, -0.45f, 0.0f); glRotated(90, 1, 0, 0); glScalef(0.4f, 0.4f, 1.5f); drawWheel(); glColor3f(0, 0, 0); glutWireTorus(0.05, 0.2, 32, 32); glPopMatrix(); //perna dianteira direita glPushMatrix(); GLfloat wheel2Amb[] = { 0.0f,0.0f,0.0f,1.0f }; GLfloat wheel2Diff[] = { 0.13f,0.13f,0.14f,1.0f }; GLfloat wheel2Spec[] = { 0.17f,0.18f,0.19f,1.0f }; GLfloat wheel2Shine = 12; glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, wheel2Amb); glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, wheel2Diff); glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, wheel2Spec); glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, wheel2Shine); glColor3f(1.0, 1.0, 1.0); glTranslatef(0.3f, -0.45f, 0.0); glRotated(90, 1, 0, 0); glScalef(0.4f, 0.4f, 1.5f); drawWheel(); glColor3f(0.0, 0.0, 0.0); glutWireTorus(0.05, 0.2, 32, 32); glPopMatrix(); // roda traseira direita glPushMatrix(); GLfloat wheel3Amb[] = { 0.0f,0.0f,0.0f,1.0f }; GLfloat wheel3Diff[] = { 0.13f,0.13f,0.14f,1.0f }; GLfloat wheel3Spec[] = { 0.17f,0.18f,0.19f,1.0f }; GLfloat wheel3Shine = 12; glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, wheel3Amb); glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, wheel3Diff); glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, wheel3Spec); glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, wheel3Shine); glColor3f(1.0, 1.0, 1.0); glTranslatef(-0.3f, 0.45f, 0.0f); glRotated(90, 1, 0, 0); glScalef(0.4f, 0.4f, 1.5f); drawWheel(); glColor3f(0, 0, 0); glutWireTorus(0.05, 0.2, 32, 32); glPopMatrix(); //perna dianteira direita glPushMatrix(); GLfloat wheel4Amb[] = { 0.0f,0.0f,0.0f,1.0f }; GLfloat wheel4Diff[] = { 0.13f,0.13f,0.14f,1.0f }; GLfloat wheel4Spec[] = { 0.17f,0.18f,0.19f,1.0f }; GLfloat wheel4Shine = 12; glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, wheel4Amb); glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, wheel4Diff); glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, wheel4Spec); glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, wheel4Shine); glColor3f(1.0, 1.0, 1.0); glTranslatef(0.3f, 0.45f, 0.0); glRotated(90, 1, 0, 0); glScalef(0.4f, 0.4f, 1.5f); drawWheel(); glColor3f(0.0, 0.0, 0.0); glutWireTorus(0.05, 0.2, 32, 32); glPopMatrix(); glPopMatrix(); }
void display(void) { /*clear all pixels*/ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // we'll explain this later, but it's setting our default modelview matrix if (camera == STATIC_CAMERA) { if (staticCameraCenterOfStage == true) { mv = LookAt(vec4(0, CAR_HEIGHT+(WHEEL_RADIUS), dolly, 1.0), vec4(0, 0, 0, 1.0), vec4(0, 1, 0, 0.0)); } else { mv = LookAt(vec4(0, CAR_HEIGHT+(WHEEL_RADIUS), dolly, 1.0), vec4(xPosition, yPosition, zPosition, 1.0), vec4(0, 1, 0, 0.0)); } } else if (camera == VIEWPOINT_CAMERA) { float Angle = (M_PI*(carAngle+headAngle)/180); float X = sin(Angle)*40; float Z = cos(Angle)*40; mv = LookAt(vec4(xPosition, yPosition+STAGE_HEIGHT+(CAR_HEIGHT*2)+WHEEL_RADIUS+(HEAD_RADIUS*2), zPosition, 1.0), vec4(X+xPosition, 1, Z+zPosition, 1.0), vec4(0, 1, 0, 0.0)); } else if (camera == CHASE_CAMERA) { float Angle = (M_PI*(carAngle)/180); float X = sin(Angle)*20; float Z = cos(Angle)*20; mv = LookAt(vec4(xPosition+X, 20, zPosition+Z, 1.0), vec4(xPosition-X, 1, zPosition-Z, 1.0), vec4(0, 1, 0, 0.0)); } mv = mv*Translate(tx, ty, tz); mv = mv*RotateX(rx); mv = mv*RotateY(ry); mv = mv*RotateZ(rz); mv = mv*Scale(sx, sy, sz); glUniformMatrix4fv(model_view, 1, GL_TRUE, mv); // and we also need to send our projection matrix, which again is more appropriately // a uniform instead of an attribute since it's the same for every vertex if (camera == STATIC_CAMERA) { p = Perspective(zoom, (float)ww/(float)wh, 1.0, 100.0); } else if (camera == VIEWPOINT_CAMERA) { p = Perspective(45, (float)ww/(float)wh, (HEAD_RADIUS*2+(EYE_RADIUS*2)), 100.0); } else if (camera == CHASE_CAMERA) { p = Perspective(45, (float)ww/(float)wh, 1.0, 100.0); } glUniformMatrix4fv(projection, 1, GL_TRUE, p); glBindVertexArray( vao[STAGE] ); glDrawArrays( GL_TRIANGLES, 0, STAGE_POINT_COUNT ); // draw the stage mat4 original = mv; mv = mv*Translate(-20, 0, -20); glUniformMatrix4fv(model_view, 1, GL_TRUE, mv); glBindVertexArray( vao[PYLON] ); glDrawArrays( GL_TRIANGLES, 0, PYLON_POINT_COUNT ); // draw the pylons mv = original; mv = mv*Translate(20, 0, -20); glUniformMatrix4fv(model_view, 1, GL_TRUE, mv); glBindVertexArray( vao[PYLON] ); glDrawArrays( GL_TRIANGLES, PYLON_POINT_COUNT, PYLON_POINT_COUNT*2 ); mv = original; mv = mv*Translate(20, 0, 20); glUniformMatrix4fv(model_view, 1, GL_TRUE, mv); glBindVertexArray( vao[PYLON] ); glDrawArrays( GL_TRIANGLES, PYLON_POINT_COUNT*2, PYLON_POINT_COUNT*3 ); mv = original; mv = mv*Translate(-20, 0, 20); glUniformMatrix4fv(model_view, 1, GL_TRUE, mv); glBindVertexArray( vao[PYLON] ); glDrawArrays( GL_TRIANGLES, PYLON_POINT_COUNT*3, PYLON_POINT_COUNT*4 ); mv = original; mv = mv*Translate(0.0, CAR_HEIGHT+(WHEEL_RADIUS), 0.0); mv = mv*Translate(xPosition, yPosition, zPosition); mv = mv*RotateY(carAngle); glUniformMatrix4fv(model_view, 1, GL_TRUE, mv); glBindVertexArray( vao[CAR] ); glDrawArrays( GL_TRIANGLES, 0, CAR_POINT_COUNT ); // draw the car original = mv; mv = mv*Translate(0.0, CAR_HEIGHT+(HEAD_RADIUS*2), 0.0); mv = mv*RotateY(headAngle); glUniformMatrix4fv(model_view, 1, GL_TRUE, mv); glBindVertexArray( vao[HEAD] ); glDrawArrays( GL_LINE_LOOP, 0, HEAD_POINT_COUNT ); // draw the head mat4 headOriginal = mv; mv = mv*Translate(.4*HEAD_RADIUS, 0.0, HEAD_RADIUS); glUniformMatrix4fv(model_view, 1, GL_TRUE, mv); glBindVertexArray( vao[EYE] ); glDrawArrays( GL_LINE_LOOP, 0, EYE_POINT_COUNT ); // draw one eye mv = headOriginal; mv = mv*Translate(-.4*HEAD_RADIUS, 0.0, HEAD_RADIUS); glUniformMatrix4fv(model_view, 1, GL_TRUE, mv); glBindVertexArray( vao[EYE] ); glDrawArrays( GL_LINE_LOOP, 0, EYE_POINT_COUNT ); // draw the other eye mv = original; mv = mv*Translate(WHEEL_X_OFFSET, WHEEL_Y_OFFSET, -WHEEL_Z_OFFSET); mv = mv*RotateY(90-steering); mv = mv*RotateZ(wheelRollAngle); glUniformMatrix4fv(model_view, 1, GL_TRUE, mv); drawWheel(); mv = original; mv = mv*Translate(-WHEEL_X_OFFSET, WHEEL_Y_OFFSET, -WHEEL_Z_OFFSET); mv = mv*RotateY(-90-steering); mv = mv*RotateZ(-wheelRollAngle); glUniformMatrix4fv(model_view, 1, GL_TRUE, mv); drawWheel(); mv = original; mv = mv*Translate(WHEEL_X_OFFSET, WHEEL_Y_OFFSET, WHEEL_Z_OFFSET); mv = mv*RotateY(90); mv = mv*RotateZ(wheelRollAngle); glUniformMatrix4fv(model_view, 1, GL_TRUE, mv); drawWheel(); mv = original; mv = mv*Translate(-WHEEL_X_OFFSET, WHEEL_Y_OFFSET, WHEEL_Z_OFFSET); mv = mv*RotateY(-90); mv = mv*RotateZ(-wheelRollAngle); glUniformMatrix4fv(model_view, 1, GL_TRUE, mv); drawWheel(); glutSwapBuffers(); }